並列化レポート

-par-report (Linux* および Mac OS* X) または /Qpar-report (Windows*) オプションは、自動パラレライザーの診断レベル 0、1、2、または 3 を制御します。値に 3 を指定して、詳細な診断レポートを生成します。

次のようなコマンドを入力して、診断レポートを実行します。

オペレーティング・システム

コマンド

Linux* および Mac OS* X

icpc -c -parallel -par-report 3 sample.cpp

Windows

icl /c /Qparallel /Qpar-report:3 sample.cpp

-c (Linux* および Mac OS* X) または /c (Windows*) は、実行ファイルを生成しないでサンプルコードをコンパイルするようにコンパイラーに指示します。

Note icon

Linux* および Mac OS* X: オプションとフェーズの間のスペースはオプションです。

Windows*: オプションとフェーズの間のコロンはオプションです。

例えば、次のコード例についての完全な診断レポートが必要であるとします。

void no_par(void)
{
  int i;
  int a[1000];
  for (i=1; i<1000; i++) {
    a[i] = (i * 2) % i * 1 + sqrt(i);
    a[i] = a[i-1] + i;
  }
}

次の例は、コンパイラーが上記のコード例に対して生成した診断レポートを示しています。たいていの場合、行の隣にリストされているコメントは説明です。

レポート出力例

procedure: no_par
sample.c(13):(3) remark #15048: ループが自動並列化されました
sample.c(13):(3) remark #15050: ループは並列化されませんでした: 並列依存関係が存在しています。
sample.c(19):(5) remark #15051: 並列依存関係: FLOW の依存関係が a 行 19 と a 行 19 の間に証明されました。

対応方法

-par-threshold{n} (Linux* および Mac OS* X) または /Qpar-threshold[:n] (Windows*) オプションは、並列ループ実行の有効性に基づいて、ループの自動並列化のしきい値を設定します。n の値は 0 から 100 までを設定できます。計算量にかかわらずループを自動並列化するには、-par-threshold0 (Linux* および Mac OS* X) または /Qpar-threshold:0 (Windows*) を使用します。

推定される関数呼び出しへの副作用を回避するには、-ipo[value] (Linux* および Mac OS* X) または /Qipo (Windows*) を使用します。


このヘルプトピックについてのフィードバックを送信

© 1996-2010 Intel Corporation. 無断での引用、転載を禁じます。