Reduzindo em array no OpenMP

Eu estou tentando paralelizar o programa a seguir, mas não sei como reduzir em uma matriz. Eu sei que não é possível fazê-lo, mas existe uma alternativa? Obrigado. (Eu adicionei redução em m que está errado, mas gostaria de ter um conselho sobre como fazer isso.)

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

questionAnswers(3)

yourAnswerToTheQuestion