Documente Academic
Documente Profesional
Documente Cultură
• OpenMP
• Pthreads
• MPI
Paralelizarea cu OpenMP
• Dupa implementarea variantei seriale, am decis
sa paralelizam programul cu OpenMP.
Descoperind anterior sursa critica a programului
am decis sa paralelizam bucata respectiva de
cod. Rezultate finale fiind diferite de cele seriale
a trebuie sa identificam sursa problemei. Astfel,
am decis ca o anumita bucata de cod trebuia
executata in ordine de catre thread-uri.
Paralelizarea cu OpenMP
Paralelizarea cu OpenMP
Paralelizarea cu OpenMP
Paralelizarea cu OpenMP
• Tot blocul de cod este integrat intr-o zona
#pragma omp parallel avand grija sa pastram
private variabilele critice. For-ul complex este
cel exterior, ce merge pana la N_LOOPS,
mentionat si anterior, astfel ca am paralelizat
acest for cu #pragma omp for ordered
schedule(dynamic,chunk).
Paralelizarea cu OpenMP
• Chunk-ul este calculat anterior in functie de
numarul de thread-uri date ca argument
programului, iar optiunea ordered este folosita
deoarece exista o sectiune critica in cadrul
algoritmului unde este necesar ca thread-urile sa
execute in ordine. Astfel am extras zona intr-o
functie auxiliara care calculeaza si modifica
valorile din cadrul matricei adjLoops.
Rezultate obtinute cu OpenMP