A.15 divisant le 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);
}