Reductions
Original serial program is a reduction:
sum = 0.0
do 10 i=1,n
10 sum = sum + a(i)
Correct but slow program: (Critical section is whole loop)
sum = 0.0
c$omp parallel private(i) shared(sum,a,n)
c$omp do
do 10 i=1,n
c$omp critical
sum = sum + a(i)
c$omp end critical
10 continue
c$omp end parallel
Previous slide
Next slide
Back to first slide
View graphic version