Je le code suivant:sections OpenMP en cours d'exécution séquentielle
#pragma omp parallel sections private(x,y,cpsrcptr) firstprivate(srcptr) lastprivate(srcptr)
{
#pragma omp section
{
//stuff
}
#pragma omp section
{
//stuff
}
}
Selon le Zoom profileur, deux fils sont créés, un thread exécute les deux sections, et l'autre thread bloque simplement!
Est-ce que quelqu'un a déjà rencontré quelque chose comme ça avant? (Et oui, j'ai une machine dual core).
+1 pour utiliser num_threads (2) - vous devez parfois forcer OpenMP à utiliser plusieurs threads, car il décidera occasionnellement de sérialiser tout s'il n'y a pas de processeurs disponibles. Je pense que vous pouvez utiliser omp_get_max_threads() pour obtenir le nombre maximum qu'il utilisera, ou vous pouvez demander à votre système combien de procs il utilise et utiliser cette valeur dans num_threads(). Bonne chance! – Mike