Parallel SynchronizationModel in C
Critical section and Barrier
#pragma omp parallel private(i,j)shared(a,b,m,n,sum)
for( j=1; j<=n; j++ ) {
#pragma omp for
for( i=1; i<=m; i++ ) {
#pragma omp critical
sum=sum+a(i,j);
}
#pragma omp barrier
b(j) = sum;
}
j =1
for
i=1
i=2
i=3
Parallel
j = 2
for
Mutual exclusion
as threads update sum
(Reduction and Atomic
also available)
Wait until all threads
have finished column
sum. (Barrier actually
built into end do.)
. . .
All threads
barrier
All threads take turns
updating shared sum
Previous slide
Next slide
Back to first slide
View graphic version