Ist es möglich ein Array mit openmp zu verkleinern?
Unterstützt OpenMP nativ die Reduzierung einer Variablen, die ein Array darstellt?
Dies würde in etwa wie folgt funktionieren ...
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]
Idealerweise gäbe es etwas Ähnliches für eine omp-Parallele für, und wenn Sie eine ausreichende Anzahl von Threads haben, um einen Sinn zu ergeben, würde die Akkumulation über einen Binärbaum erfolgen.