Stavo cercando su Google una pagina che offrisse alcuni semplici algoritmi OpenMp. Probabilmente c'è un esempio per calcolare min, max, mediana, media da un enorme array di dati, ma non sono in grado di trovarlo.Algoritmi OpenMp C++ per min, max, media, media
Almeno normalmente proverei a dividere l'array in un blocco per ogni core e a eseguire successivamente un calcolo dei limiti per ottenere il risultato per l'array completo.
Non volevo reinventare la ruota.
nota aggiuntiva: So che ci sono migliaia di esempi che funzionano con semplice riduzione. ad es. Calcolo PI.
const int num_steps = 100000;
double x, sum = 0.0;
const double step = 1.0/double(num_steps);
#pragma omp parallel for reduction(+:sum) private(x)
for (int i=1;i<= num_steps; i++){
x = double(i-0.5)*step;
sum += 4.0/(1.0+x*x);
}
const double pi = step * sum;
ma quando questo tipo di algoritmi non sono utilizzabili non ci sono quasi esempi lasciato per ridurre algoritmi.
sì, sono d'accordo, è difficile trovare tutorial ed esempi su openmp ... http://openmp.blogspot.com Questo potrebbe essere utile che ho trovato ieri, .. quindi ho pensato di condividerlo qui ,. – anshu