次の方法で共有


MPI_Mrecv関数

MPI_MprobeまたはMPI_Improbeに一致するメッセージに対してブロック受信を実行します。

構文

int MPIAPI MPI_Mrecv(
  _Out_   void         *buf,
  _In_    int          count,
  _In_    MPI_Datatype datatype,
  _Inout_ MPI_Message  *message,
  _Out_   MPI_Status   *status
);

パラメーター

  • buf [out]
    受信バッファーのアドレスへのポインター。

  • count [in]
    buf 内のデータ型要素の数。

  • datatype [in]
    バッファー配列内の要素の MPI データ型。

  • message [in, out]
    メッセージへのポインターを格納します。

  • status [out]
    戻り値には、メッセージに関する情報が格納される MPI_Status 構造体へのポインターが含まれます。

戻り値

成功 したMPI_SUCCESS を返します。 それ以外の場合、戻り値はエラー コードです。

Fortran では、戻り値は IERROR パラメーターに格納されます。

Fortran

    MPI_MRECV(BUF, COUNT, DATATYPE, MESSAGE, STATUS, IERROR)
        <type> BUF(*)
        INTEGER COUNT, DATATYPE, MESSAGE, STATUS(MPI_STATUS_SIZE), IERROR

注釈

この関数は、一致するプローブ操作で一致するメッセージを受け取ります。 受信バッファーは、データ型で指定された型の count 連続要素を含むストレージで構成され、アドレス buf から始まります。 受信メッセージの長さは、受信バッファーの長さ以下である必要があります。 オーバーフロー エラーは、すべての受信データが切り捨てずに受信バッファーに収まらない場合に発生します。

メッセージが受信バッファーよりも短い場合は、 (短い) メッセージに対応する場所のみが変更されます。

この関数から返されると、メッセージ ハンドルは MPI_MESSAGE_NULL に設定されます。 この操作の実行中に発生するすべてのエラーは、メッセージ ハンドルを生成した一致するプローブ呼び出しで使用されるコミュニケーターに対して設定されたエラー ハンドラーに従って処理されます

要件

製品

Microsoft MPI v6

ヘッダー

Mpi.h;Mpif.h

ライブラリ

Msmpi.lib

[DLL]

Msmpi.dll

こちらもご覧ください

MPI ポイント間関数

MPI_Mprobe

MPI_Improbe

MPI_Recv

MPI_Imrecv