15 04 2004 szczerba

sejkcja krytyczna
taki fragment ktory niezaleznie czy jest to wewnatrz jakiejs czesci programu wykonywany rownolegle jest wykonywany sekwencyjnie

!$omp_critical
.
. sekcja krytyczna
.
.
!$omp_end critical


zastepczo mozemy zastosowac redukcje

redukcja - operacja w ktorej zmienna za pomoca operatora dwu argumentowego wiaze sie iteracyjnie z inna wartoscia i wynik jest zapisywany spowrotem w tej zmiennej.

reduction(operator redukcji:lista zmiennych)

patrz program redsum.f:

!$omp parallel do reduction (+ : sum)
do i = 1,20
sum = sum + a(i)
enddo
!$omp end parallel do


typowe operatory redukcji:
+ * - max min



zmienne prywatne nowe

firstprivate (l. zmiennych) - poczatkowa wartosc w watkach - jak przed petla
lastprivate (l. zmiennych) - koncowa wartosc - taka jak po wykonaniu ostaniej iteracji w trybie sekwencyjnym


Wyszukiwarka