ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3: パフォーマンスアナライザの MPI のチュートリアル Oracle Solaris Studio 12.3 Information Library (日本語) |
Oracle Solaris 10 および Linux 用の MPI ソフトウェア
Oracle Solaris 11 用の MPI ソフトウェア
ClusterTools および Open MPI 用のサンプルコード
Oracle Solaris 11 の Oracle Message Passing Toolkit 用のサンプルコード
MPI_Init および MPI_Finalize がすでにフィルタで除去されている状態で、「MPI チャート」の機能を調べます。初期チャートには、どの関数にもっとも長い時間がかかったかが示されます。
「MPI チャート」タブをクリックして、次のようなチャートを表示します。
「MPI チャート」タブが開き、関数がすべてのプロセスで実行されたときにかかった実行時間の合計を示すチャートが表示されます。チャートの右側にある垂直方向の虹色のスケールは、色と値のマッピングを示しています。この例では、MPI_Send および Application 関数にかかった時間がほとんどないのに対し、MPI_Recv の累積時間は 3 秒近くにもなりました。
「MPI_Recv」関数のバーをクリックします。
バーの正確な値が「MPI チャートコントロール」タブに表示されます。
このアプリケーションでは、どのプロセスもトークンがほかのすべてのプロセスに渡されるまで待機します。結果として、MPI_Recv にはかなりの時間が費やされ、MPI 関数間の時間を表す状態である Application にはほとんど時間が費やされません。あとで確認するとおり、あるランクへのメッセージ配信の遅れはほかのすべてのランクの進行を妨げます。
このセクションでは、さまざまな方法で「MPI チャートコントロール」タブを使用してデータを図形化する方法について説明します。解析中のプログラムによっては、一部のチャートオプションがほかのものよりも役に立ちます。すべての MPI チャートコントロールについては、付録 A MPI チャートコントロールの設定を参照してください。
「MPI チャートコントロール」タブで次の選択を行なって、メッセージを調べるチャートを作成します。
メッセージ
2D チャート
送信プロセス
受信プロセス
実行時間
最大
「変更を表示更新する」をクリックすると、次のようなチャートが表示されます。
このチャートは、プロセス 0 がプロセス 1 にのみ送信することを示しています。プロセス 1 はプロセス 2 にのみ送信し、以下同様になります。各ボックスの色は選択したメトリック (「経過時間」) と演算子 (「最大」) によって設定されます。このグラフの「データ型」は「メッセージ」であるため、これはメッセージの実行時間の合計になるか、または時間寸法におけるメッセージ線の長さになります。
チャートの色はランク間のメッセージの最大実行時間を示しています。この例では、到達にかかる時間がもっとも長いメッセージが P14 から P15 に送信されました。
「MPI チャートコントロール」タブで次の選択を行います。
メッセージ
Y ヒストグラム
N/A
受信プロセス
実行時間
最大
「変更を表示更新する」をクリックして、新しいチャートを表示します
この例では、チャートは P15 ランクがメッセージを受信するのにもっとも長く待機したことを示しています。
これらの実行時間の長いメッセージが発生した時期についてのヒストグラムを表示するには、コントロールに対して次の選択を行います。
メッセージ
X ヒストグラム
受信時間
N/A
実行時間
最大
「変更を表示更新する」をクリックして次のようなチャートを表示します。
この例では、もっとも遅いメッセージが 3.981 秒で受信されました。
実行時間の長いメッセージの影響を調べるには、関数の実行時間と時間との比較を示すグラフを作成します。
「MPI チャートコントロール」タブで次の選択を行なって、メッセージを調べるチャートを作成します。
関数
2D チャート
終了時間
実行時間
実行時間
最大
「変更を表示更新する」をクリックします。
この例では、グラフは実行時間の長い関数が含まれるいくつかの時間領域を示しています。t=3.99 のところで関数の実行時間が 20 秒を超えていることに注意してください。この時間は、前のチャートに表示されている、所要時間の長いメッセージに一致しています。
これらの実行時間の長い関数の周囲をボックスでドラッグしてズームすることで、それらを特定します。
「フィルタ」ボタンをクリックして、これらの関数呼び出しのみを調べます。
「MPI タイムライン」タブをクリックします。
「MPI タイムライン」で実行時間の長い関数を識別できます。それらは配信時間の遅いメッセージの結果です。
「削除」および「再適用」ボタンをクリックして、実行時間の長い関数の周囲のコンテキストをトグルします。
「MPI チャートコントロール」の詳細は、付録 A MPI チャートコントロールの設定を参照してください