Reducción en matriz en OpenMP

Estoy tratando de paralelizar el siguiente programa, pero no sé cómo reducir en una matriz. Sé que no es posible hacerlo, pero ¿hay alguna alternativa? Gracias. (Agregué la reducción en m que está mal, pero me gustaría tener un consejo sobre cómo hacerlo).

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