98
szerkesztés
Módosítások
→Szálak szinkronizációja
for (int i = 0; i < n; i++) {
sum = sum + i;
}
</pre>
Tulajdonképpen a fenti problémakörre a következő minta ad megoldást. Ekkor egy külön változóban akkumuláltatjuk a szál általi összeget és ezen értékeke összegyűjtését végezzük csak atomi műveletként.
<pre>
int sum = 0;
#pragma omp parallel
{
int sum_thr = 0;
#pragma omp for
for (int i=0; i<n; i++)
sum_thr += i;
#pragma omp atomic
sum += sum_thr;
}
</pre>