Redukcja macierzy w OpenMP
Próbuję zrównoważyć następujący program, ale nie wiem, jak zmniejszyć na tablicy. Wiem, że nie jest to możliwe, ale czy istnieje alternatywa? Dzięki. (Dodałem zmniejszenie m, które jest błędne, ale chciałbym mieć radę, jak to zrobić.)
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <omp.h>
using namespace std;
int main ()
{
int A [] = {84, 30, 95, 94, 36, 73, 52, 23, 2, 13};
int S [10];
time_t start_time = time(NULL);
#pragma omp parallel for private(m) reduction(+:m)
for (int n=0 ; n<10 ; ++n ){
for (int m=0; m<=n; ++m){
S[n] += A[m];
}
}
time_t end_time = time(NULL);
cout << end_time-start_time;
return 0;
}