OpenMP* アプリケーションのトレースを収集

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

シンボル情報の解決を有効にするには、-g コンパイルオプションを指定してください。

OpenMP* アプリケーションのトレースを収集して XML ファイルを生成するには、つぎの手順に従ってください。

  1. 次の表に示すように、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.shfgtrun.csh、および fgt2xml.exe へのパスを含んでいる必要があります。

  2. OMPT からのトレースを有効にするには次の変数を設定します。

    オペレーティング・システム

    環境変数

    説明

    Linux*

    OMP_TOOL

    有効

    OMPT ツールサポートを有効にします。

    OMP_TOOL_LIBRARIES

    ${FGT_ROOT}/linux/lib/intel64/cc4.8_libc2.19_kernel3.13.0/libfgt.so

    OpenMP* コレクター・ライブラリーへのパス

  3. アプリケーションを実行。

    パスが正しく設定されていると、アプリケーションは _fgt で始まるファイルを生成します。アプリケーションの並列処理に参加するスレッドごとに 1 つのファイルが生成されます。例えば、2 つのスレッドがフローグラフの実行に関連している場合、アプリケーションを実行すると、_fga_YYYYMMDD_HHMMSS 形式で自動生成フォルダーに 2 つのファイル _fgt.0_fgt.1 が生成されます (例、_fga_20191111_1111)。

  4. トレースファイルを 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.graphmlunknown.traceml を作成します。

    omp_experimental オプションを使用すると、サブグラフとタスク依存グラフを表示できます。デフォルトでは表示サポートは無効化されており、スレッドごとのトレースには OpenMP* 構造に関連する情報だけが表示されます。