A.15 사용된 스레드 수 확인
잘못 된 다음 예제를 살펴보십시오 (에 대 한 구역 3.1.2 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() 호출 1을 반환 코드를 직렬 부분에 따라서 np 항상 앞의 예제에서 1로 됩니다. 병렬 영역에 배포 되는 스레드 수를 결정 하려면 호출 병렬 영역 내부에 있어야 합니다.
다음 예제에서는 스레드의 수에 대 한 쿼리를 포함 하지 않고이 프로그램을 다시 작성 하는 방법을 보여 줍니다.
#pragma omp parallel private(i)
{
i = omp_get_thread_num();
work(i);
}