This shows you the differences between two versions of the page.
app:laboratoare:02 [2022/10/18 14:21] emil.slusanschi |
app:laboratoare:02 [2022/10/19 14:58] (current) emil.slusanschi [Clauza nowait] |
||
---|---|---|---|
Line 144: | Line 144: | ||
</code> | </code> | ||
- | ===== nowait ===== | + | ===== Clauza nowait ===== |
Atunci când paralelizăm un for, există o barieră după fiecare for paralelizat, unde se așteaptă ca toate thread-urile din for-ul paralelizat să ajungă în același punct în același timp, ca apoi să-și continue execuția. | Atunci când paralelizăm un for, există o barieră după fiecare for paralelizat, unde se așteaptă ca toate thread-urile din for-ul paralelizat să ajungă în același punct în același timp, ca apoi să-și continue execuția. | ||
Line 151: | Line 151: | ||
#pragma omp parallel | #pragma omp parallel | ||
{ | { | ||
- | #pragma omp for nowait private(i) | + | #pragma omp for private(i) |
for (i = 0; i < 16; i++) { | for (i = 0; i < 16; i++) { | ||
c(i); | c(i); | ||
Line 179: | Line 179: | ||
{{:app:laboratoare:parallel_for_nowait.png?600|Rulare utilizand nowait}} | {{:app:laboratoare:parallel_for_nowait.png?600|Rulare utilizand nowait}} | ||
- | ===== Reduction ===== | + | ===== Directiva Reduction ===== |
''reduction'' este o directivă folosită pentru operații de tip reduce / fold pe arrays / colecții sau simple însumări / înmulțiri în cadrul unui loop. Mai precis, elementele dintr-un array sau indecșii unui loop sunt "acumulați" într-o singură variabilă, cu ajutorul unei operații, al cărui semn este precizat, in mod automat sincronizat peste mai multe threaduri. Nu orice operatie poate fi utilizata intr-o operatie de tip ''reduction''. | ''reduction'' este o directivă folosită pentru operații de tip reduce / fold pe arrays / colecții sau simple însumări / înmulțiri în cadrul unui loop. Mai precis, elementele dintr-un array sau indecșii unui loop sunt "acumulați" într-o singură variabilă, cu ajutorul unei operații, al cărui semn este precizat, in mod automat sincronizat peste mai multe threaduri. Nu orice operatie poate fi utilizata intr-o operatie de tip ''reduction''. | ||