2014-01-22 74 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是實現定義,並且沒有環境變量影響該值。因此默認循環時間表是實現定義的。證明完畢