次の方法で共有


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

注釈

この関数は、受信できるメッセージがあり、引数 sourcetag、および comm で指定されたパターンと一致するメッセージがある場合、フラグ = true を返します。呼び出しは、プログラム内の同じ時点で実行されたMPI_Recvの呼び出しによって受信されたメッセージと同じメッセージと一致し、MPI_Recvによって返されたのと同じ値を状態で返します。 さらに、一致したメッセージへのハンドルを メッセージ で返します。 それ以外の場合、呼び出しは フラグ = false を 返し、 状態メッセージ は未定義のままにします。

要件

製品

Microsoft MPI v6

ヘッダー

Mpi.h;Mpif.h

ライブラリ

Msmpi.lib

[DLL]

Msmpi.dll

こちらもご覧ください

MPI ポイント間関数

MPI_Mprobe

MPI_Recv

MPI_Imrecv