OpenMP* トレース収集は、現在、Linux* と macOS* でのみサポートされています。
アプリケーションの OpenMP* トレースを収集するには、LLVM-OpenMP (英語) など OMPT 対応の OpenMP* バージョン 5.0 ライブラリーが必要です。
インテル® C++ コンパイラー・クラッシックを使用する Linux* 環境でサンプルコード (例、OpenMP* アプリケーションの実験的サポートで説明されている omp_depend.cpp) をビルドするには、次のコマンドを実行します。
icpc -std=c++11 -qopenmp omp_depend.cpp -o example
OpenMP* アプリケーションのトレースを収集して XML ファイルを生成するには、つぎの手順に従ってください。
次の表に示すように、FGT_ROOT 変数を設定して、PATH 環境変数を更新します。
オペレーティング・システム |
環境変数 |
値 |
説明 |
|---|---|---|---|
Linux* |
FGT_ROOT |
<advisor-install-dir>/fga<version>/fgt |
フローグラフ・アナライザーのインストール先のパス |
<PATH> |
${FGT_ROOT}/linux/bin:${FGT_ROOT}/linux/bin/ia32/cc4.8_libc2.19_kernel3.13.0:${FGT_ROOT}/linux/bin/intel64/cc4.8_libc2.19_kernel3.13.0:${PATH} |
パスは fgtrun.sh、fgtrun.csh、および fgt2xml.exe へのパスを含んでいる必要があります。 |
OMPT からのトレースを有効にするには次の変数を設定します。
オペレーティング・システム |
環境変数 |
値 |
説明 |
|---|---|---|---|
Linux* |
OMP_TOOL |
有効 |
OMPT ツールサポートを有効にします。 |
OMP_TOOL_LIBRARIES |
${FGT_ROOT}/linux/lib/intel64/cc4.8_libc2.19_kernel3.13.0/libfgt.so |
OpenMP* コレクター・ライブラリーへのパス |
アプリケーションを実行。
パスが正しく設定されていると、アプリケーションは _fgt で始まるファイルを生成します。アプリケーションの並列処理に参加するスレッドごとに 1 つのファイルが生成されます。例えば、2 つのスレッドがフローグラフの実行に関連している場合、アプリケーションを実行すると、_fga_YYYYMMDD_HHMMSS 形式で自動生成フォルダーに 2 つのファイル _fgt.0 と _fgt.1 が生成されます (例、_fga_20191111_1111)。
トレースファイルを GraphML* と TraceML* 形式へ変換します。
トレースファイルが格納されるフォルダーを含むディレクトリーにある fgt2xml.exe コンバーターを使用して、_fgt バイナリーファイルを フローグラフ・アナライザーが識別できる XML 形式に変換します。
fgt2xml.exe <desired_name> --omp_experimental
または
fgt2xml.exe --omp_experimental <desired_name>
または
fgt2xml.exe --omp_experimental
このコンバーターは、<desired_name> に従って最新のフォルダーにあるすべての _fgt ファイルを現在のディレクトリーでスキャンして、2 つの出力ファイルを生成します: <desired_name>.graphml と <desired_name>.traceml。<desired_name> を指定しないと、コンバーターは unknown.graphml と unknown.traceml を作成します。
omp_experimental オプションを使用すると、サブグラフとタスク依存グラフを表示できます。デフォルトでは表示サポートは無効化されており、スレッドごとのトレースには OpenMP* 構造に関連する情報だけが表示されます。