OpenMP并行 - 什么是默认计划?

时间:2014-01-22 18:58:49

标签: parallel-processing openmp

如果未指定schedule子句,则使用什么调度算法?即:

#pragma omp parallel for
for (int i = 0; i < n; ++i)
    Foo(i);

1 个答案:

答案 0 :(得分:8)

从您链接到的documentation开始。第 2.7.1.1节确定工作共享循环的计划部分为:

  

如果loop指令没有 schedule 子句,则 def-sched-var ICV的当前值将确定计划。

引用之前的句子是指第2.3.1节,其中包括:

  
      
  • def-sched-var - 控制实现定义的循环区域的默认调度。每台设备都有一份此ICV的副本。
  •   

2.3.2 ICV初始化一节中的表格指出 def-sched-var 的初始值是实现定义的,并且没有影响该实例的环境变量值。因此,默认循环调度是实现定义的。 Q.E.D。