このステップでは、結果を解析してレポートの推奨内容を実装するかどうかを決定します。
レポートは、ソースコード scalar_dep.cpp の次のループについて述べたものです。
for (i=0; i<n; i++) {
if (A[i] > 0) {b=A[i]; A[i] = 1 / A[i]; }
if (A[i] > 1) {A[i] += b;}
}
-parallel オプションを追加して別の解析を実行し、結果を確認します。
サンプル・コードのディレクトリーで、次のコマンドを使用してソースコードをコンパイルします。
icpc -c -parallel -guide scalar_dep.cpp
コンパイラーの出力結果を確認します。
scalar_dep.cpp(79) リマーク #30523: (PAR) 変数 "b" に、ループ本体の 最初 (行 79) で値を代入します。これにより、ループが並列化されます。 [確認] プログラムにおいてループの各反復で変数 "b" の読み込みを行う 場合、変数はその反復以前に定義されていなければなりません。 [別の方法] "#pragma parallel private(b)" を使用してループを並列化します。 [確認] 前述の条件をすべて満たしていなければなりません。 scalar_dep.cpp(79): リマーク #30525: (PAR) "#pragma loop count min(256)" 文をループ (行 79) の直前に挿入して、このループを並列化します。 [確認] ループの反復回数が 256 以上であることを確認してください。
次のステップでは、レポートの推奨内容を実装します。