Sun Studio 12: パフォーマンスアナライザ

MPI トレースデータ

コレクタは、Message Passing Interface (MPI) ライブラリの呼び出しに関するデータを収集できます。現在、MPI トレースは、Solaris OS を実行しているシステムにのみ利用できます。データ収集の対象となる関数を次に示します。

MPI_Allgather

MPI_Allgatherv

MPI_Allreduce

MPI_Alltoall

MPI_Alltoallv

MPI_Barrier

MPI_Bcast

MPI_Bsend

MPI_Gather

MPI_Gatherv

MPI_Irecv

MPI_Isend

MPI_Recv

MPI_Reduce

MPI_Reduce_scatter

MPI_Rsend

MPI_Scan

MPI_Scatter

MPI_Scatterv

MPI_Send

MPI_Sendrecv

MPI_Sendrecv_replace

MPI_Ssend

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome

MPI_Win_fence

MPI_Win_lock

 

MPI トレースデータは、次のメトリックに変換されます。

表 2–4 MPI トレースメトリック

メトリック 

定義 

MPI 受信 

データを受信する MPI 関数の受信操作回数 

MPI 受信バイト数 

MPI 関数で受信したバイト数 

MPI 送信 

データを送信する MPI 関数の送信操作回数 

MPI 送信バイト数 

MPI 関数で送信したバイト数 

MPI 時間 

MPI 関数のすべての呼び出しに使用した時間 

ほかの MPI 呼び出し 

ほかの MPI 関数の呼び出し数 

受信または送信したとして記録されたバイト数は、呼び出しにおいて与えられるバッファーサイズです。この数値は、実際に受信または送信したバイト数よりも大きいことがあります。大域通信関数と集合通信関数においては、直接的なプロセッサ間通信が行われるとともにデータ転送やデータ再送の最適化が行われないという前提に基づき、送信または受信されるバイト数が最大値となります。

トレースされる MPI ライブラリの関数を、MPI 送信関数、MPI 受信関数、MPI 送受信関数、およびその他の MPI 関数に分類して表 2–5 にまとめます。

表 2–5 送信、受信、送受信、およびその他の MPI 関数の分類

カテゴリ 

関数 

MPI 送信関数 

MPI_BsendMPI_IsendMPI_RsendMPI_SendMPI_Ssend

MPI 受信関数 

MPI_IrecvMPI_Recv

MPI 送受信関数 

MPI_AllgatherMPI_AllgathervMPI_AllreduceMPI_AlltoallMPI_AlltoallvMPI_BcastMPI_Gather MPI_GathervMPI_ReduceMPI_Reduce_scatterMPI_ScanMPI_Scatter MPI_ScattervMPI_SendrecvMPI_Sendrecv_replace

その他の MPI 関数 

MPI_BarrierMPI_WaitMPI_WaitallMPI_WaitanyMPI_WaitsomeMPI_Win_fenceMPI_Win_lock

MPI トレースデータを収集すると、MPI 呼び出しによって MPI プログラムのパフォーマンスに問題が生じている可能性がある場所を確認できます。発生する可能性のあるパフォーマンスの問題の例には、負荷分散、同期遅延、通信ボトルネックなどがあります。