MPI_Improbe関数
非ブロッキングの方法でメッセージをプローブします。 プローブ/受信操作の介入に関係なく、一致した特定のメッセージを受信するメカニズムを提供します。 一致したメッセージは受信キューからキューに入れ解除されるため、アプリケーションは、非ブロッキング一致プローブ操作によって返される情報に基づいてメッセージを受信する方法を決定できます。 一致したメッセージは、 MPI_Mrecv または MPI_Imrecv 関数を使用して受信されます。
構文
int MPIAPI MPI_Improbe(
_In_ int source,
_In_ int tag,
_In_ MPI_Comm comm,
_Out_ Int *flag,
_Out_ MPI_Message *message,
_Out_ MPI_Status *status
);
パラメーター
source [in]
ソースランクまたは MPI_ANY_SOURCE。tag [in]
メッセージ タグまたは MPI_ANY_TAG。comm [in]
MPI コミュニケーター ハンドル。flag [out]
戻り値には、指定した ソース、 タグ、および comm が一致するかどうかを示す整数へのポインターが含まれます。 0 以外の値は、パラメーターが一致することを示します。message [out]
戻り値には、一致したメッセージへのポインターが含まれます。status [out]
戻り値には、メッセージに関する情報が格納される MPI_Status 構造体へのポインターが含まれます。
戻り値
成功 したMPI_SUCCESS を返します。 それ以外の場合、戻り値はエラー コードです。
Fortran では、戻り値は IERROR パラメーターに格納されます。
Fortran
MPI_IMPROBE(SOURCE, TAG, COMM, FLAG, MESSAGE, STATUS, IERROR)
INTEGER SOURCE, TAG, COMM, FLAG, MESSAGE, STATUS(MPI_STATUS_SIZE), IERROR
注釈
この関数は、受信できるメッセージがあり、引数 source、tag、および comm で指定されたパターンと一致するメッセージがある場合、フラグ = true を返します。呼び出しは、プログラム内の同じ時点で実行されたMPI_Recvの呼び出しによって受信されたメッセージと同じメッセージと一致し、MPI_Recvによって返されたのと同じ値を状態で返します。 さらに、一致したメッセージへのハンドルを メッセージ で返します。 それ以外の場合、呼び出しは フラグ = false を 返し、 状態 と メッセージ は未定義のままにします。
要件
製品 |
Microsoft MPI v6 |
ヘッダー |
Mpi.h;Mpif.h |
ライブラリ |
Msmpi.lib |
[DLL] |
Msmpi.dll |