インテル® Advisor はクラスター上で実行される並列タスクを解析可能であるため、MPI アプリケーションのベクトル化やスレッド化の可能性を調査できます。
MPI ジョブを開始するには、mpirun、mpiexec、srun、aprun などの MPI ランチャーを使用します。インテル® MPI ライブラリーまたは他の MPI 実装とともにインテル® Advisor を使用できるのは、コマンドライン・インターフェイスからのみですが、その結果はスタンドアロン GUI とコマンドラインで表示できます。ここで説明する例では、mpirun と advisor コマンドライン・インターフェイス (CLI) を使用して、クラスター全体にプロセスを配置し、アプリケーションのデータを収集しています。
MPI アプリケーションの解析:
次のいずれかの方法でアプリケーションを解析します。
インテル® Advisor グラフィカル・ユーザー・インターフェイス (GUI) では、インテル® MPI ライブラリー・ランチャーまたはカスタムランチャーの結果を収集するため、事前設定されたコマンドラインを生成できます。この場合、すべてのオプションとプロジェクト・ディレクトリーとアプリケーションの実行可能ファイルへのパスを指定するため、それぞれのコマンドを手動で入力する必要はありません。
詳細については、コマンドラインを生成するを参照してください。
インテル® MPI ライブラリーを使用すると、インテル® Advisor を使用して MPI アプリケーションの単一、または複数の MPI ランクを解析できます。これは、解析のオーバーヘッドを軽減するのに有効です。
ランク 0 の設定には時間がかかる場合があり、一般的な MPI アプリケーションのパフォーマンスを適切に収集できないため、解析にはランク 1 以上を使用することを推奨します。
MPI コマンド構文
インテル® MPI ライブラリーの mpirun ランチャーを使用してインテル® Advisor から MPI アプリケーションのパフォーマンス・データを収集するには、次のコマンド構文を使用します。
mpirun -gtool "advisor --collect=<analysis-type> --search-dir src:r=<source-dir> [--no-auto-finalize] --project-dir=<project-dir>:<rank-set>" -n <N><application-name> [<application-options>]
説明:
必要条件: 環境変数を設定して、インテル® Advisor CLI を有効にします。
以下を前提とします。
注意: 以下のコマンドでは、コマンドを実行する前にアプリケーションのパスと名前に置き換える必要があります。アプリケーションが引数を必要とする場合、実行可能ファイル名の後にそれらを指定します。
この例では、インテル® MPI ライブラリーの gtool オプションを使用して、MPI アプリケーションのランク 1 に対しサーベイ、トリップカウント、およびルーフライン解析を実行する方法を示します。
mpirun -gtool "advisor --collect=survey --project-dir=./advi_results:1" -n 4 ./mpi_sample
mpirun -gtool "advisor --collect=tripcounts --flop --project-dir=./advi_results:1" -n 4 ./mpi_sample
サーベイ、トリップカウント、および FLOP データを収集すると、アプリケーションのルーフライン・レポートを取得できます。
必要条件: 環境変数を設定して、インテル® Advisor CLI を有効にします。
以下を前提とします。
注意: 以下のコマンドでは、コマンドを実行する前にアプリケーションのパスと名前に置き換える必要があります。アプリケーションが引数を必要とする場合、実行可能ファイル名の後にそれらを指定します。
ランクのセットを解析
この例では、インテル® MPI ライブラリーの gtool オプションを使用して、MPI アプリケーションの一連のランクに対しサーベイ、トリップカウント、およびルーフライン解析を実行する方法を示します。
mpirun -gtool "advisor --collect=survey --project-dir=./advi_results:1-2,4" -n 4 ./mpi_sample
mpirun -gtool "advisor --collect=tripcounts --flop --project-dir=./advi_results:1-2,4" -n 4./mpi_sample
サーベイ、トリップカウント、および FLOP データを収集すると、アプリケーションのルーフライン・レポートを取得できます。
すべてのランクを解析
この例では、インテル® MPI ライブラリーの gtool オプションを使用して、MPI アプリケーションのすべてのランクに対しサーベイ、トリップカウント、およびルーフライン解析を実行する方法を示します。
mpirun -gtool "advisor --collect=survey --project-dir=./advi_results" -n 4 ./mpi_sample
mpirun -gtool "advisor --collect=tripcounts --flop --project-dir=./advi_results" -n 4./mpi_sample
サーベイ、トリップカウント、および FLOP データを収集すると、アプリケーションのルーフライン・レポートを取得できます。
インテル以外の MPI ライブラリー実装では、インテル® Advisor は MPI アプリケーションのすべてのランクのみを解析できます。これは解析のオーバーヘッドを増加させます。
MPI コマンド構文
mpirun ランチャーを使用してインテル® Advisor から MPI アプリケーションのパフォーマンス・データを収集するには、次のコマンド構文を使用します。
mpirun -n <N> "advisor --collect=<analysis-type> --search-dir src:r=<source-dir>--trace-mpi [--no-auto-finalize] --project-dir=<project-dir>" <application-name> [<application-options>]
説明:
必要条件: 環境変数を設定して、インテル® Advisor CLI を有効にします。
以下を前提とします。
注意: 以下のコマンドでは、コマンドを実行する前にアプリケーションのパスと名前に置き換える必要があります。アプリケーションが引数を必要とする場合、実行可能ファイル名の後にそれらを指定します。
この例では、インテル® MPI ライブラリーの 4 つのランクに対しサーベイ、トリップカウント、およびルーフライン解析を実行する方法を示します。
mpirun -n 4 "advisor --collect=survey --project-dir=./advi_results"./mpi_sample
mpirun -n 4 "advisor --collect=tripcounts --flop --project-dir=./advi_results" ./mpi_sample
サーベイ、トリップカウント、および FLOP データを収集すると、アプリケーションのルーフライン・レポートを取得できます。
例:
mpiexec -gwdir \\<host1>\mpi -hosts 2 <host1> 1 <host2> 1 advisor --collect=survey --project-dir=\\<host1>\mpi\advi_results -- \\<host1>\mpi\mpi_sample.exe
advisor --import-dir=\\<host1>\mpi\advi_results --project-dir=\\<host1>\mpi\new_advi_results --search-dir src:=\\<host1>\mpi --mpi-rank=1
advisor --report=survey --project-dir=\\<host1>\mpi\new_advi_results
または
mpiexec -mapall -gwdir z:\-hosts 2 <host1> 1 <host2> 1 advisor --collect=survey --project-dir=z:\advi_results -- z:\mpi_sample.exe
または
mpiexec -map z:\\<host1>\mpi -gwdir z:\-hosts 2 <host1> 1 <host2> 1 advisor --collect=survey --project-dir=z:\advi_results -- z:\mpi_sample.exe
インテル® Advisor は、--project-dir で指定されたプロジェクト・ディレクトリーにある解析された各ランクのサブディレクトリーに収集結果を保存します。rank.<n> という形式の名前が付けられます。数値サフィックス <n> は解析された MPI タンクに対応します。一度に表示できるのは 1 つのランクの結果のみです。
特定のランクで収集されたパフォーマンス結果を表示するには、次のいずれかの方法を使用します。
GUI で 結果を表示
インテル® Advisor GUI から、<project-dir>/rank.<n> ディレクトリーにある結果プロジェクトのファイル *.advixeproj を開きます。
コマンドラインから GUI を開くこともできます。
advisor-gui ./advi_results/rank.1
コマンドラインから結果を表示
インテル® Advisor の --report アクションを実行して、結果のサマリーをターミナルに出力します。
advisor --report=<analysis-type> --project-dir=<project-dir> --mpi-rank=<n>
説明:
ファイルで結果を表示
指定したランクの結果を TXT、CSV、または XML ファイルに保存できます。例えば、次のコマンドで advisor_result.csv ファイルに結果を保存します。
advisor --report=<analysis-type> --format=csv --report-output=advisor_result.csv --project-dir=<project-dir> --mpi-rank=<n>
説明:
MPI アプリケーション解析の詳細については、インテル デベロッパー・ゾーンのインテル® MPI ライブラリーとオンライン MPI ドキュメント (https://www.intel.com/content/www/us/en/developer/tools/oneapi/mpi-library.html (英語)) をご覧ください。
構文の詳細は、「インテル MPI ライブラリー・デベロッパー・リファレンス (Linux*)」 (英語) または「インテル MPI ライブラリー・デベロッパー・リファレンス (Windows*)」 (英語) を参照してください。
ハイブリッド・アプリケーション: インテル® デベロッパー・ゾーンのインテル® MPI ライブラリーと OpenMP* (https://www.isus.jp/products/c-compilers/hybrid-applications/)