2014-01-22 78 views
0

当没有指定schedule子句时,使用什么调度算法? I.e .:OpenMP并行 - 什么是默认计划?

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

你可能想看看[这里](http://stackoverflow.com/help/how-to-ask)。特别是,你在发布这个问题之前做了哪些研究? – Massimiliano

+2

使用特定于实现的默认计划。 –

+0

@Massimiliano我已经阅读[documentation](http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf)和其他各种互联网上的资源,没有任何效果。 – Mixer

回答

4

从您链接到的documentation开始。第2.7.1.1确定一个工作集循环的日程安排如下:

如果循环指令没有时间表条款则DEF-SCHED-VAR的当前值ICV确定时间表。

引用的一个之前的句子是指第2.3.1节,其读取:

  • DEF-SCHED-VAR - 控制环区域实施定义的默认调度。每个设备有一个此ICV的副本。

节中的表2.3.2 ICV初始化指出的初始值DEF-SCHED-VAR是实现定义,并且没有环境变量影响该值。因此默认循环时间表是实现定义的。证明完毕