为什么跟随包含有序“构造”的openmp代码不执行?

时间:2014-03-04 11:58:50

标签: c multithreading parallel-processing openmp sleep

我正在尝试执行以下代码, 虽然我知道“语法上”有序的构造应该出现在for循环中, 但为什么代码卡在有序的子句中 即执行应该立即给我一个“语法错误”。

omp_set_num_threads(11);
#pragma omp parallel
{

// 1

 #pragma omp ordered
{
  printf("\n%d ",omp_get_thread_num());//this statement is not getting executed
}//ordered omp pragma

}//parallel omp pragma

// 1处的print语句成功 我甚至试图删除ompgetthreadnum(),但仍无济于事。

1 个答案:

答案 0 :(得分:1)

#pragma omp ordered可能只会出现在#pragma omp for ordered构建内。

Source