This shows you the differences between two versions of the page.
|
app:laboratoare:02 [2025/10/22 09:29] alexandru.bala [Static scheduling] |
app:laboratoare:02 [2025/10/22 10:36] (current) alexandru.bala [Directiva Reduction] |
||
|---|---|---|---|
| Line 21: | Line 21: | ||
| ===== Static scheduling ===== | ===== Static scheduling ===== | ||
| - | În cadrul static scheduling, iterațiile unui for sunt împărțite în chunks, de dimensiune ''chunk_size'', și distribuite thread-urilor în ordine circulară. Dacă ''chunk_size'' nu este precizat, acesta va fi egal cu ''numărul_de_iterații_for / numărul_de_thread-uri'' (pe baza teoremei împărțirii cu rest, primele ''rest'' threads-uri vor avea ''ceil'' din acest număr, iar cele rămase ''floor''). | + | În cadrul static scheduling, iterațiile unui for sunt împărțite în chunks, de dimensiune ''chunk_size'', și distribuite thread-urilor în ordine circulară. Dacă ''chunk_size'' nu este precizat, acesta va fi egal cu ''numărul_de_iterații_for / numărul_de_thread-uri'' (pe baza teoremei împărțirii cu rest, primele ''rest'' threads-uri vor avea ''ceil'' din această valoare, iar cele rămase ''floor''). |
| Line 180: | Line 180: | ||
| ===== Directiva 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, în mod automat sincronizat peste mai multe thread-uri. Nu orice operație poate fi utilizată într-o operație de tip ''reduction''. |
| Tipar: ''reduction(operator_operatie:variabila_in_care_se_acumuleaza)'' | Tipar: ''reduction(operator_operatie:variabila_in_care_se_acumuleaza)'' | ||