Skip to content

iza03/Map-Reducer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

    Tema 1a: Calcul paralel al unui index inversat utilizand paradigma Map-Reduce

Implementarea este realizata in doua etape principale:

- Mapper: Fiecare Mapper proceseaza fisierele alocate, identifica cuvintele si le
distribuie catre reduceri responsabili, in functie de prima litera.  
- Reducer: Fiecare Reducer preia cuvintele asociate literelor pentru care este
responsabil, le organizeaza alfabetic si dupa numarul de fisiere in care apar,
si le scrie in fisiere de iesire separate.

    Functii implementate

- main
  - Se citesc datele de intrare si se salveaza informatiile despre fisierele care
  trebuie procesate.
  - Se initializeaza structurile pentru thread-uri.
  - Se creeaza thread-urile de Mapper si Reducer.
  - Se asteapta terminarea thread-urilor utilizand `pthread_join`.
  - La final, se elibereaza resursele utilizate (mutex-uri, bariere).

- initializeThreadStruct
  - Configureaza datele necesare fiecarui thread.

- reducerFileIndex
  - Determina care reducer este responsabil pentru fiecare litera din alfabet.

- assignFileToMapper
  - Atribuie un fisier unui Mapper.
  - Utilizeaza un mutex pentru acces sincronizat la lista de fisiere, astfel incat
  fiecare fisier sa fie procesat o singura data.

- processFilesForReducers
  - Mapper-ii citesc fisierele alocate si identifica cuvintele din continut.
  - Formateaza cuvintele (litere mici, elimina caracterele non-alfabetice) si le
  atribuie reducer-ilor corespunzatori.

- mapper
  - Proceseaza fisierele alocate unui Mapper utilizand `processFilesForReducers`.
  - Actualizeaza listele partajate ale Reducer-ilor utilizand mutex-uri pentru
  sincronizare.

- calculateLetterRange
  - Determina intervalul de litere pentru fiecare Reducer in functie de ID-ul sau.

- groupWords
  - Grupeaza cuvintele procesate de Reducer pe baza primei lor litere.

- writeGroupedWords
  - Scrie rezultatele procesate de fiecare Reducer in fisiere text, fiecare fisier
  corespunzand unei litere.
  - Cuvintele sunt sortate descrescator dupa numarul de fisiere in care apar si
  alfabetic in caz de egalitate.

- reducer
  - Proceseaza listele partajate primite de Reducer, le grupeaza si le scrie in
  fisiere.

- func
  - Functia principala a thread-urilor.
  - Mapperii proceseaza fisierele, iar Reducerii prelucreaza datele partajate.
  - Asigura sincronizarea intre Mapperi si Reduceri utilizand o bariera.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors