É possível fazer uma redução em uma matriz com openmp?

O OpenMP suporta nativamente a redução de uma variável que representa uma matriz?

Isso funcionaria algo como o seguinte ...

float* a = (float*) calloc(4*sizeof(float));
omp_set_num_threads(13);
#pragma omp parallel reduction(+:a)
for(i=0;i<4;i++){
   a[i] += 1;  // Thread-local copy of a incremented by something interesting
}
// a now contains [13 13 13 13]

Idealmente, haveria algo semelhante para um paralelo omp e, se você tiver um número suficientemente grande de encadeamentos para que isso faça sentido, a acumulação acontecerá através da árvore binária.

questionAnswers(5)

yourAnswerToTheQuestion