インテル® VTune™ Amplifier XE 2013 Update 4 でサポートされる特定の OpenMP* 並列時間範囲のパフォーマンス・データ

同カテゴリーの次の記事

インテル® Cilk™ Plus の配列表記による外部ループのベクトル化

この記事は、インテル® デベロッパー・ゾーンに掲載されている「Performance data for OpenMP* specific time region is supported in VTune™ Amplifier XE 2013 Update 4」 (http://software.intel.com/en-us/blogs/2013/02/23/performance-data-for-openmp-specific-time-region-is-supported-in-vtune-amplifier-xe) の日本語参考訳です。


インテル® VTune™ Amplifier XE は OpenMP* 仕様をサポートしています。そのため、OpenMP* ライブラリー中のホットな関数、CPU 使用率、スレッドの並行性 (コンカレンシー) を表示し、OpenMP* ライブラリーを呼び出しているソースコード行にドリルダウンできます。

次のような状況では、タイムライン・ビューで「OpenMP* のコード領域」を確認したい場合もあるでしょう。

  1. アプリケーションの実行時間が長く、OpenMP* コードが実行されている特定の並列時間範囲のパフォーマンス・データを確認したい場合。
  2. ズームイン/選択のフィルターを使用して、フィルターしたレポートで詳細なパフォーマンス・データを確認したい場合。

インテル® Composer XE はプログラムのコンパイル時にフレーム API と fork-join 通知を挿入するため、インテル® VTune™ Amplifier XE は OpenMP* ランタイム・ライブラリーを検出できます。つまり、プログラムの実行時に、並列領域の開始位置から終了位置までのデータを記録することが可能です。

必要なツール:

  1. インテル® Composer XE 2013 Update 2 以降
  2. インテル® VTune™ Amplifier XE 2013 Update 4 以降

操作方法:

1. 通常どおりにコードをコンパイルします (“/Zi” または “/Z7” オプションと “/DEBUG” リンカーオプションを指定してシンボルファイルを生成する必要があります)。

2. 「Debug」 ビルドの場合は、インテル® VTune™ Amplifier XE のプロジェクト・プロパティーで環境変数を設定し ( KMP_FORKJOIN_FRAMES=1)、[Inherit settings from Visual Studio* project (Visual Studio* プロジェクトから設定を継承)] チェックボックスを “オフ” にします。そうでない場合はステップ 3 を実行します。

3. 「Release」 ビルドの場合は、Visual Studio* のプロジェクト・プロパティーで環境変数を設定し ( KMP_FORKJOIN_FRAMES=1)、[Inherit settings from Visual Studio* project (Visual Studio* プロジェクトから設定を継承)] チェックボックスを “オン” にします。

4. インテル® VTune™ Amplifier XE の解析を実行します。ボトムアップ・レポートに OpenMP* フレームが表示されます。OpenMP* フレームでズームイン/選択のフィルターを使用して、フィルターしたレポートを生成することもできます。

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

関連記事