このサンプルの GAP レポートは、並列化を有効にするために /Qparallel オプションを使用することを推奨しています。次の手順に従ってこのオプションを有効にしてください。
GAP-f プロジェクトを右クリックして、[プロパティ] を選択します。
[プロパティ ページ)] ダイアログで [Fortran] ヘッダーを展開して、[Optimization (最適化)] を選択します。
右のペインの [Parallelization (並列化)] で、[Yes (/Qparallel) (はい (/Qparallel))] を選択して [OK] をクリックします。
これで、GAP 解析を再度実行し、GAP レポートを確認します。
GAP の推奨内容が適切であるこを確認したら、必要な変更を行います。プログラムのセマンティクスは変更しないでください。
このループについては、GAP が推奨するように、条件付きコンパイルがループの並列化とベクトル化を有効にします。
do i = 1, n !dir$ if defined(test_gap) t = i !dir$else if (a(i) >= 0) then t = i end if !dir$ endif if (a(i) > 0) then a(i) = t * (1 / (a(i) * a(i))) end if end do
ループが並列化/ベクトル化されたことを確認するには:
[Command Line (コマンドライン)] > [Additional Options (追加のオプション)] に /Qdiag-enable:par /Qdiag-enable:vec オプションを追加します。
適切なコードパスがコンパイルされるようにプリプロセッサー定義 test_gap を追加します。
GAP-f プロジェクトをリビルドして、[出力] ウィンドウのレポートを確認してください。
-guide、-vec-report、および -par-report コンパイラー・オプションの使用に関する詳細は、ユーザー・リファレンス・ガイドの「コンパイラー・オプション」を参照してください。
このチュートリアルでは、コンパイラーが自動並列化を通じてどのように最適化ソリューションをガイドするかを見てきました。以上で、ガイド付き自動並列処理のチュートリアルは終了です。
© 2010 Intel Corporation. 無断での引用、転載を禁じます。