ガイド付き自動並列化レポートを解析する

このステップでは、結果を解析してレポートの推奨内容を実装するかどうかを決定します。

レポートは、ソースコード 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 オプションを追加して別の解析を実行し、結果を確認します。

注

2 つ目の推奨内容は、このチュートリアルの次のステップで実装します。

サンプル・コードのディレクトリーで、次のコマンドを使用してソースコードをコンパイルします。

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 以上であることを確認してください。

注

出力のリマークおよび行番号は異なる場合があります。

次のステップでは、レポートの推奨内容を実装します。

次へ


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