#include "omp.h"
int main() {
int i, n, tid;
float a[10], b[10], sum;
/* initializari */
n = 10;
for (i=0; i < n; i++)
a[i] = b[i] = i * 1.0;
sum = 0.0;
omp_set_num_threads(3); // setam 3 thread-uri
// la final, fiecare thread va aduna la variabila sum, valoarea calculata
#pragma omp parallel for reduction(+:sum) private(tid)
for (i=0; i < n; i++)
{
sum = sum + (a[i] * b[i]);
tid = omp_get_thread_num();
printf("Sum = %f, from thread %d\n",sum, tid);
}
printf(" Sum = %f\n",sum); // suma finala
return 0;
}
Niciun comentariu:
Trimiteți un comentariu