Partager via


A.15 Détermination du nombre de threads utilisés

Prenons l'exemple incorrect suivant (pour section 3.1.2 à la page 37) :

np = omp_get_num_threads(); // misplaced 
#pragma omp parallel for schedule(static)
    for (i=0; i<np; i++)
        work(i);

L'appel d' omp_get_num_threads() retourne 1 dans la section série de le code, le NP sera toujours égale à 1 dans l'exemple précédent. Pour déterminer le nombre de threads qui seront déployés pour la zone parallèle, l'appel doit être à l'intérieur de la région parallèle.

L'exemple suivant montre comment réécrire ce programme sans inclure une requête pour le nombre de threads :

#pragma omp parallel private(i)
{
    i = omp_get_thread_num();
    work(i);
}