Partilhar via


A.15 Determinando o número de threads usados

Considere o seguinte exemplo incorreto (para seção 3.1.2 na página 37):

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

O omp_get_num_threads() chamar retorna 1 na seção serial do código, então, np será sempre igual a 1, no exemplo anterior. Para determinar o número de threads que serão implantados para a região paralela, a chamada deve ser dentro da região paralela.

O exemplo a seguir mostra como reconfigurar este programa sem incluir uma consulta para o número de segmentos:

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