アプリケーション・パフォーマンス・スナップショット導入ガイド (Linux* 版)

この資料は、インテルの「Downloadable Documentation: Intel® oneAPI Toolkits and Components」からダウンロードした『Intel® VTune™ Profiler』 (vtune_docs_2025.0.0.zip) の「Get Started with Application Performance Snapshot - Linux* OS」 (documentation\en\vtune\vtune-profiler_get-started-application-snapshot\) を iSUS で翻訳した日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。

本ドキュメントはレイアウト調整および校閲を行っておりません。誤字脱字、製品名や用語の表記、レイアウト等の不具合が含まれる可能性があることを予めご了承ください。


はじめに

アプリケーション・パフォーマンス・スナップショットを使用すると、計算集約型アプリケーションに関連するパフォーマンスを素早くスキャンできます。

アプリケーション・パフォーマンス・スナップショットは、主要な最適化領域を表示し、インテル® VTune™ プロファイラーやインテル® Advisor など、特定のパフォーマンスを調整する専用ツールを提案します。大規模な MPI ワークロードでアプリケーション・パフォーマンス・スナップショットを実行して、スケーラビリティーの問題を解析できます。

アプリケーション・パフォーマンス・スナップショットをダウンロード

アプリケーション・パフォーマンス・スナップショットは、Linux* 上のインテル® VTune™ プロファイラーのすべてのインストールにバンドルされています。アプリケーション・パフォーマンス・スナップショットは、次の方法でダウンロードすることができます。

必要条件

(オプション) アプリケーション・パフォーマンス・スナップショットの実行中に高度なメトリックを収集するには、次のソフトウェアを使用します。

(オプション) 収集のオーバーヘッドを軽減し、メモリー帯域幅の測定値を収集するには、システム全体のモニタリングを有効にします。システム全体のモニタリングを有効にするには、次のいずれかのオプションを使用します。

アプリケーション・パフォーマンス・スナップショットを使用する前に、環境を設定します。

  1. コマンドプロンプトを開きます。

  2. アプリケーション・パフォーマンス・スナップショットを実行するため、適切な環境変数を設定します。

    <vtune-install-dir>/apsvars.sh を実行します。ここで、<vtune-install-dir> はインテル® VTune™ プロファイラーがインストールされている場所です。

    次に例を示します。

    source /opt/intel/oneapi/vtune/latest/apsvars.sh

共有メモリー・アプリケーションの解析

  1. 次のコマンドを実行します。

    aps <my app><app parameters>

    ここで、<my app> はアプリケーションの場所、<app parameters> はアプリケーション・パラメーターです。

    アプリケーション・パフォーマンス・スナップショットは、アプリケーションを起動してデータ収集を実行します。

  2. 解析が完了すると、コマンドウィンドウにレポートが表示されます。サポートされるブラウザーで同じ情報を含む HTML レポートを開くこともできます。HTML レポートのパスは、コマンドウィンドウに示されます。次に例を示します:

    firefox aps_result_01012017_1234.html

  3. レポートに表示されているデータを解析します。後述のメトリックの説明を参考にしてください。HTML レポートでは、メトリックにホバーすると詳細情報が表示されます。

  4. 結果の解析に基づいて、適切な次のステップを決定します。一般的な次のステップには、アプリケーションのチューニング、またはインテル® VTune™ プロファイラーやインテル® Advisor などのパフォーマンス解析ツールによる詳しい調査が含まれます。

MPI アプリケーションの解析

  1. 次のコマンドを実行して、MPI アプリケーションに関するデータを収集します:

    <mpi launcher><mpi parameters> aps <my app><app parameters>

    説明:

    • <mpi launcher> は、mpirun、srun、aprun などの MPI ジョブランチャーです。

    • <mpi parameters> は、MPI ランチャーのパラメーターです。

      aps は最後の <mpi launcher> パラメーターでなければなりません。

    • <my app> は、アプリケーションの場所です。

    • <app parameters> はアプリケーション・パラメーターです。

    アプリケーション・パフォーマンス・スナップショットは、アプリケーションを起動してデータ収集を実行します。解析が完了すると、aps_result_<date> ディレクトリーが作成されます。

  2. 次のコマンドを実行して、解析を完了します:

    aps --report aps_result_<date>

    解析が完了すると、コマンドウィンドウにレポートが表示されます。サポートされるブラウザーで同じ情報を含む HTML レポートを開くこともできます。

  3. レポートに表示されているデータを解析します。後述のメトリックの説明を参考にしてください。HTML レポートでは、メトリックにホバーすると詳細情報が表示されます。

    ヒント

    アプリケーションが MPI 依存の場合、次のコマンドを実行して、メッセージサイズ、ランク間またはノード間のデータ転送、集合操作に費やされた時間など、メッセージパッシングに関する詳細を得ることができます。

    aps --report <option> app_result_<date>

    ランク間通信のグラフィック表現を生成するには、--format=html を使用します:

    aps --report -x --format=html <result name>

    $ aps-report --help で利用可能なオプションを確認できます。

  4. 結果の解析に基づいて、適切な次のステップを決定します。一般的な次のステップには、mpitune ユーティリティーによる通信のチューニング、またはインテル® Trace Analyzer & Collector やインテル® VTune™ プロファイラーなどのパフォーマンス解析ツールによるさらに詳しい調査が含まれます。

次のステップ

メトリックのクイック・リファレンス

アプリケーション・パフォーマンス・スナップショットでは、次のメトリックが収集されます。インテル® VTune™ プロファイラーの詳細については、インテル® Vtune™ プロファイラーのユーザーガイドをご覧ください。

経過時間: 指定したアプリケーションの実行時間 (秒)。収集が一時停止された時間は含まれません。

SP GFLOPS: 1 秒間に計算された単精度ギガ浮動小数点操作数。SP GFLOPS メトリックは、第 3 世代インテル® Core™ プロセッサー、第 5 世代インテル® プロセッサー、および第 6 世代インテル® プロセッサーでのみ利用できます。

DP GFLOPS: 1 秒間に計算された倍精度ギガ浮動小数点操作数。DP GFLOPS メトリックは、第 3 世代インテル® Core™ プロセッサー、第 5 世代インテル® プロセッサー、および第 6 世代インテル® プロセッサーでのみ利用できます。

命令リタイアごとのサイクル (CPI): 実行された命令にかかった時間をサイクル数で測定した値。CPI =1 は、ハイパフォーマンス・コンピューティング (HPC) アプリケーションでは許容値と見なされますが、アプリケーション・ドメインごとに期待値は異なります。CPI 値は、レイテンシーの長いメモリー操作、浮動小数点操作、SIMD 操作、分岐予測ミスによりリタイアしない命令、またはフロントエンドの命令スタベーションがあると、大きくなる傾向にあります。

CCL 時間: oneCCL ライブラリー内で費やされたプロセスあたりの平均時間。MPI で費やされた時間は含まれません。高い値の原因としては、次のことが考えられます。

MPI 時間: MPI 呼び出しに費やされたプロセスごとの平均時間。MPI_Finalize に費やされた時間は含まれません。値が大きい場合、ライブラリー内の長い待機時間、アクティブな通信、MPI ライブラリーの最適でない設定が原因の可能性があります。このメトリックは、MPICH ベースの MPI で利用できます。

MPI の負荷インバランス: ランクが通信操作の待機でスピンに費やした CPU 時間。値が大きい場合、ランク間のアプリケーション・ワークロードのインバランス、最適でない通信スキーム、MPI ライブラリーの最適でない設定が原因の可能性があります。このメトリックは、インテル® MPI ライブラリー 2017 以降でのみ利用できます。

OpenMP* インバランス: ロードインバランスのためアプリケーションが OpenMP* 同期バリアで浪費した経過時間の割合。このメトリックは、インテルの OpenMP* ランタイム・ライブラリーでのみ利用できます。

インテル® Omni-Path ファブリックのインターコネクト帯域幅とパケットレート: 計算ノードごとの平均インターコネクト帯域幅とパケットレート (送信値と受信値)。値がインターコネクトの上限に近くなると、ネットワーク通信の待ち時間が長くなります。インターコネクト・メトリックは、インテル® VTune™ プロファイラーのドライバーがインストールされている場合にインテル® Omni-Path ファブリックで利用できます。

CPU 利用率: アプリケーションによるシステムのすべての論理 CPU コアの利用率の予測。このメトリックは、アプリケーションの並列効率を評価するのに役立ちます。100% の利用率は、アプリケーションの実行中ずっと、すべての論理 CPU コアがビジーに保たれていることを意味します。このメトリックは、アプリケーションの有用なワークと並列ランタイムで費やされた時間を区別しないことに注意してください。

メモリーストール: アプリケーションのパフォーマンスに影響を与えるメモリー・サブシステムの問題の数。要求ロード/ストア命令によりパイプラインがストールする可能性のあるスロットの割合を測定します。値が大きい場合、キャッシュストール、DRAM ストール、およびリモートアクセスの割合メトリックを確認して、メモリー関連のパフォーマンス・ボトルネックの性質を理解します。平均メモリー帯域幅がシステム帯域幅の上限に近い場合、メモリーストールを回避するため、メモリー依存アプリケーション向けの最適化手法が必要になる可能性があります。

ベクトル化: パックド (ベクトル化された) 浮動小数点操作のパーセンテージを表します。値が大きいほど、コードがベクトル化された領域は大きくなります。このメトリックは、ベクトル命令の実行に使用される実際のベクトル長を考慮していません。そのため、コードが完全にベクトル化されベクトル長の半分のみロードする従来の命令セットを使用している場合でも、ベクトル化メトリックは 100% で表示されます。

I/O 操作: ディスクからのデータの読み取りまたはディスクへのデータの書き込みにアプリケーションが費やした時間。Read (読み取り) 値と Write (書き込み) 値は、経過時間中に読み書きされるデータの平均と最大量を示します。このメトリックは、MPI アプリケーションでのみ利用できます。

PCIe* メトリック: PCIe* デバイスによって開始された受信読み取りおよび書き込み操作の平均帯域幅を示します。GPU およびネットワーク・コントローラー・デバイスのデータが表示されます。

メモリー使用量: 仮想メモリーと常駐メモリーのランクごとおよびノードごとの平均使用量。

GPU メトリック: このメトリックのコレクションには、アプリケーションの GPU 利用率を解析できるメトリックが含まれています。これらのメトリックを使用すると、GPU がオフロードタスクでビジー状態だった時間の割合を確認できるほか、実行ユニットがどの程度活用されているか把握できます。

ドキュメントとリソース

リソース

説明

パフォーマンス・スナップショットのユーザーフォーラム (英語)

アプリケーション・パフォーマンス・スナップショットを含む、インテルのすべてのパフォーマンス・スナップショット・ツール用のユーザーフォーラム。

アプリケーション・パフォーマンス・スナップショット・ユーザーズガイド

各メトリックの詳細やアプリケーション最適化のベスト・プラクティスなど、アプリケーション・パフォーマンス・スナップショットについて詳しく説明したマニュアル。

法務上の注意書き

インテルのテクノロジーを使用するには、対応したハードウェア、特定のソフトウェア、またはサービスの有効化が必要となる場合があります。

絶対的なセキュリティーを提供できる製品またはコンポーネントはありません。

実際の費用と結果は異なる場合があります。

© Intel Corporation. Intel、インテル、Intel ロゴ、その他のインテルの名称やロゴは、Intel Corporation またはその子会社の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

本ソフトウェアおよび関連ドキュメントは、インテルが著作権を有する著作物であり、その使用には付随する明示的なライセンス (「ライセンス」) が適用されます。ライセンスに明記されている場合を除き、インテルから事前に書面による許可なしに、ソフトウェアまたは関連ドキュメントを使用、改変、複製、公開、配布、開示、転送してはなりません。

本ソフトウェアおよび関連ドキュメントは現状のまま提供され、ライセンスに明記されている場合を除き、明示されているか否かにかかわらず、いかなる保証もいたしません。