自動並列化のしきい値と診断

しきい値制御

-par_threshold{n} オプションは、並列ループ実行の有効性に基づいて、ループの自動並列化のしきい値を設定します。n の値は 0 から 100 まで設定できます。デフォルト値は75 です。このオプションは、コンパイル時に計算量が確定できないループに使用します。しきい値は、通常、ループ反復回数がコンパイル時に不明なときに関係します。

-par_threshold{n} オプションには次のバージョンと機能があります:

コンパイラは、作成された複数のスレッドのオーバーヘッドとスレッド間を共有できるワーク量のバランスをとろうとするヒューリスティックスを適用します。

診断

-par_report{0|1|2|3} オプションは、自動パラレライザの診断レベル 0、1、2、3 を次のように制御します:

並列化診断レポートの例

次の例は、-par_report3で生成された出力結果です:

prompt>icpc -c -parallel -par_report3 prog.cpp

サンプル出力

program prog

procedure: prog

serial loop: line 5: not a parallel candidate due to

statement at line 6

serial loop: line 9

flow data dependence from line 10 to line 10, due to "a"

12 Lines Compiled

プログラム prog.cpp は次のとおりです:

prog.cpp のサンプル

/* Assumed side effects */

 

for (i=1; i<10000; i++)

{

  a[i] = foo(i);

}

 

/* Actual dependence */

 

for (i=1; i<10000; i++)

{

  a[i] = a[i-1] + i;

}

トラブルシューティングのヒント