OpenMP C ++ - Jak zrównoważyć tę funkcję?
Chciałbym zrównoważyć tę funkcję, ale jestem nowy z otwartym mp i byłbym wdzięczny, gdyby ktoś mógł mi pomóc:
void my_function(float** A,int nbNeurons,int nbOutput, float* p, float* amp){
float t=0;
for(int r=0;r<nbNeurons;r++){
t+=p[r];
}
for(int i=0;i<nbOutput;i++){
float coef=0;
for(int r=0;r<nbNeurons;r++){
coef+=p[r]*A[r][i];
}
amp[i]=coef/t;
}
}
Nie wiem, jak poprawnie zrównoważyć to z powodu podwójnej pętli, bo na razie myślałem tylko o zrobieniu:#pragma omp parallel for reduction(+:t)
Ale myślę, że nie jest to najlepszy sposób na szybsze obliczanie poprzez openMp.
Z góry dziękuję,