HPC パフォーマンス特性解析を使用して、計算集約型アプリケーションが CPU、メモリー、および浮動小数点演算ハードウェア・リソースをどの程度効率良く使用しているか特定します。
HPC パフォーマンス特性解析タイプは、アプリケーションのパフォーマンスを理解する出発点です。また、インテルの OpenMP* やインテル® MPI ランタイム・ライブラリーを使用するアプリケーション向けに、追加のスケーラビリティー・メトリックも用意されています。
HPC パフォーマンス特性解析中、インテル® VTune™ プロファイラーのデータコレクターは、イベントベース・サンプリング収集を使用してアプリケーションをプロファイルします。インテルの OpenMP* ランタイム・ライブラリーの [OpenMP 解析] メトリックは、ランタイム・ライブラリーで有効になっているユーザー API インストルメントをベースにしています。
通常、コレクターは指定するアプリケーションのデータを収集しますが、必要に応じて、(詳細レベルは制限されますが) システム全体のパフォーマンス・データを収集できます。
ベクトル化メトリックと GFLOPS メトリックは、インテル® マイクロアーキテクチャー開発コード名 Ivy Bridge、Broadwell、および Skylake でサポートされます。インテル® Xeon Phi™ プロセッサー (開発コード名 Knights Landing) では機能が制限されます。メトリックは、第 4 世代のインテル® プロセッサーでは利用できません。システムで利用可能なプロセッサー・ファミリーを表示するには、[解析の設定] ウィンドウの [どのように] ペインの [詳細] セクションを展開します。
解析は、インテル® VTune™ プロファイラーの GUI またはコマンドラインから実行できます。
インテル® VTune™ プロファイラーは、インテル® VTune™ Amplifier の後継バージョンであり、名称が変更されました。
次のように HPC パフォーマンス特性解析のオプションを設定します。
必要条件: プロジェクトを作成します。
インテル® VTune™ プロファイラー・ツールバーの (スタンドアロン GUI)/ (Visual Studio* IDE) [解析の設定] ボタンをクリックします。
[解析の設定] ウィンドウが表示されます。
[どのように] ペインで、 ボタンをクリックして、[HPC パフォーマンス特性] を選択します。
次のオプションを設定します。
[CPU サンプリング間隔 (ミリ秒)] フィールド |
CPU 間のサンプリング間隔を指定します (ミリ秒)。 設定可能な値は、0.01 - 1000 です。 デフォルト値は 1 です。 |
[スタックを収集] チェックボックス |
コールスタックとスレッドのコンテキスト・スイッチの高度な収集を有効にします。 このオプションは、デフォルトで無効になっています。 |
[メモリー帯域幅を解析] チェックボックス |
メモリー帯域幅を計算するのに必要なデータを収集します。 このオプションは、デフォルトで有効になります。 |
[DRAM の最大帯域幅を評価] チェックボックス |
収集を開始する前に、達成可能な最大 DRAM 帯域幅を評価します。このデータは、タイムライン上で帯域幅メトリックをスケールし、しきい値を計算するために使用されます。 このオプションは、デフォルトで有効になります。 |
[OpenMP* 領域を解析] チェックボックス |
インバランス、ロック競合、またはスケジュール、リダクション、およびアトミック操作のオーバーヘッドなどの非効率性を特定するため、OpenMP* 領域をインストルメントして解析します。 このオプションは、デフォルトで有効になります。 |
[詳細] ボタン |
この解析タイプのデフォルトの編集不可設定のリストを展開/折りたたみます。解析の設定を変更したり、追加の設定を有効にするには、既存の事前定義設定をコピーしてカスタム設定を作成する必要があります。インテル® VTune™ プロファイラーは、解析タイプ設定の編集可能なコピーを作成します。 |
下部の [コマンドライン] ボタンを使用して、この設定のコマンドラインを生成できます。
[開始] ボタンをクリックして解析を実行します。
HPC パフォーマンス特性ビューポイントでは以下を確認します。
効果的な物理コア利用率: アプリケーション・コードの実行による物理コア利用率から、アプリケーションの並列効率を調べます。シリアル時間と並列時間、OpenMP* 領域のチューニングの可能性、および MPI インバランスなどスケーラビリティーの問題を特定します。
メモリー依存: アプリケーションがメモリー依存であるか評価します。より深い問題を理解するには、メモリーアクセス解析を実行して問題を引き起こしている特定のオブジェクトを検出します。
ベクトル化: 浮動小数点ループが、帯域幅依存であるかベクトル化されているかを調査します。帯域幅依存のループ/関数では、帯域幅の占有を減らす可能性を調査するためメモリーアクセス解析を実行します。インテル® Advisor のベクトル化解析を実行して、ベクトル化の最適化の可能性を調査します。
インテル® Omni-Path ファブリックの使用: インターコネクトの制限によるパフォーマンスのボトルネックを特定します。
ハイブリッド・アプリケーションをチューニングする基本ステップを検討には、OpenMP* と MPI アプリケーション解析のチュートリアルを利用してください。インテル® デベロッパー・ゾーン (https://www.intel.com/content/www/us/en/docs/vtune-profiler/tutorial-vtune-itac-mpi-openmp/current/overview.html (英語)) でチュートリアルを入手できます。