#pragma omp parallel private(nthreads, tid)
{
tid = omp_get_thread_num();
printf("Hello World from thread = %d\n", tid);
/* Only master thread does this */
if (tid == 0)
{
nthreads = omp_get_num_threads();
printf("Number of threads = %d\n", nthreads);
}
#pragma omp barrier
#pragma omp for schedule(dynamic)
for(int n=0; n<10; ++n){
printf(" %d", n);
printf(" %d", tid);
}
printf("\n");
}
为什么当我用时间表(动态)打印时我总是得到0,而在使用时间表(静态)时,我看到每个tid打印(0-9)。如果我真的担心那个线程在做什么,我可能不会使用动态,但我只是好奇。
提前致谢。