A.15 che determina il numero di thread utilizzati

Considerare il codice errato (ad esempio parte 3.1.2 nella pagina 37):

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

omp_get_num_threads() risultati della chiamata a 1 della sezione seriale del codice, pertanto il NP essere sempre uguale a 1 nell'esempio precedente.Per determinare il numero di thread che verranno implementati per area parallela, la chiamata deve trovarsi all'area parallela.

Nell'esempio seguente viene illustrato come riscrivere il programma senza includere una query per il numero di thread:

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