-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*) は、実行ファイルを生成しないでサンプルコードをコンパイルするようにコンパイラーに指示します。
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. 無断での引用、転載を禁じます。