インテル® oneAPI スレッディング・ビルディング・ブロックまたは OpenMP* 解析のスタックのスティッチ

[スタックのスティッチ] オプションを使用して、ランタイムからの通知を受け取り、並列ワークロードの開始位置にスタックをアタッチして、インテル® oneAPI スレッディング・ビルディング・ブロック (インテル® oneTBB) や OpenMP* アプリケーションの論理的な呼び出しツリーを復元します。

通常、インテル® oneAPI スレッディング・ビルディング・ブロック (インテル® oneTBB) や OpenMP* を使用するアプリケーションの実際の実行フローは、コードのフローとは大きく異なります。インテル® ランタイム・ライブラリーを使用する oneTBB や OpenMP* ベースのアプリケーションのユーザーモード・サンプリングとトレース解析中、インテル® VTune™ プロファイラーは自動的に [スタックのスティッチ] オプションを有効にします。OpenMP* や oneTBB オブジェクトの階層を表示するには、[トップダウン・ツリー] ペインのデータを調査します。

  • 論理的に構造化された OpenMP* 呼び出しフローを解析するには、インテル® コンパイラー 13.1 Update 3 以降 (インテル® Composer XE 2013 Update 3 に含まれます) でコードがコンパイルされていることを確認してください。

  • スタックのスティッチは、インテル® VTune™ プロファイラーからアプリケーションを実行する際 ([アプリケーションを起動] ターゲットタイプ) に利用できます。アプリケーションをアタッチする場合 ([プロセスにアタッチ] 解析タイプ) は動作しません。

例えば、収集のオーバーヘッドを最小限にする場合、スタックのスティッチを無効にします。事前定義されたユーザーモードのサンプリングとトレース解析タイプ (ホットスポットやスレッド化) でこれを行うには、新しいカスタムタイプ解析設定を作成して、カスタム解析設定の [スタックのスティッチ] オプションを無効にする必要があります。コマンドライン解析でも同様に変更された GUI 解析設定を使用できます。その場合、[解析の設定] ウィンドウで [コマンドライン…] ボタンをクリックし、生成されたコマンドラインをターミナルウィンドウにコピーして実行するだけです。または、次のように knob stack-stitching=false オプションを使用して、runss 解析のコマンドラインを手動で設定することもできます。

> vtune -collect-with runss -knob cpu-samples-mode=stack -knob stack-stitching=false -knob mrte-type=java,dotnet,python -app-working-dir <path> -- <application>

この場合、[トップダウン・ツリー] ペイン (または top-down レポート) は、OpenMP* ワーカースレッドの個別のエントリーを表示します。

[スタックのスティッチ] オプションを無効にした [トップダウン・ツリー] ペインのコールスタック。

[スタックのスティッチ] オプションを有効にした [トップダウン・ツリー] ペインのコールスタック (デフォルト動作)。

関連情報