A.15 Bestimmen der Anzahl der verwendeten Threads
Betrachten Sie das folgende Beispiel der falschen (für Abschnitt 3.1.2 auf Seite 37):
np = omp_get_num_threads(); // misplaced
#pragma omp parallel for schedule(static)
for (i=0; i<np; i++)
work(i);
Die omp_get_num_threads() Rückkehraufrufe 1 im seriellen Codeabschnitt, sodass NP sind immer gleich 1 im vorherigen Beispiel.Um die Anzahl der Threads ermitteln möchten, die für den bereitgestellten parallelen Bereich muss der Aufruf innerhalb des parallelen Bereichs.
Das folgende Beispiel zeigt, wie Sie das Programm neu geschrieben werden, ohne eine Abfrage einzuschließenden für die Anzahl von Threads:
#pragma omp parallel private(i)
{
i = omp_get_thread_num();
work(i);
}