J'ai un morceau de codecode OpenMP Attend Rejoignez Barrière la plupart du temps
void parallel_func()
{
#pragma omp parallel
{
#pragma omp for collapse(2) schedule(dynamic) nowait
for(i=0; i<N; i++) {
for(j=0;j<N;j++) {
if (i>j) continue; // hack to allow collapse here
//...
}
}
#pragma omp critical
{
//...
}
}
}
l'aide d'un profileur, je remarque que la plupart du temps mon code passe ... en attente sur OpenMP Rejoignez Barrière ... Une idée pourquoi? Ou comment identifier la cause?
~
merci pour la réponse. J'ai ajouté 'parallel'. J'ai utilisé VTune et j'ai remarqué que tous les threads sont inactifs à la fin, donc c'est bizarre. J'ai également effacé presque tout le code, et j'ai eu le même effet. Peut-être que c'est un artefact ajouté par VTune ... –