Я хотел бы распараллелить эту функцию, но я новичок с открытыми мками, и я был бы признателен, если кто-то может помочь мне:OpenMP 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;
}
}
Я не знаю, как распараллелить это правильно, так как из двойная петля для, на данный момент, я только подумал о том, чтобы сделать: #pragma omp parallel for reduction(+:t)
Но я думаю, что это не лучший способ быстрее получить вычисления через openMp.
Спасибо заранее,
Не позволяйте двойной петле вас пугать. Вы также можете использовать OpenMP 'прагма'. – Mysticial
Параллельный внешний контур. –