Array-Reduzierung in OpenMP

Ich versuche, das folgende Programm zu parallelisieren, weiß aber nicht, wie ich ein Array reduzieren soll. Ich weiß, dass dies nicht möglich ist, aber gibt es eine Alternative? Vielen Dank. (Ich habe die Reduzierung von m hinzugefügt, was falsch ist, möchte aber einen Rat dazu haben.)

#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;
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage