次の方法で共有


MPI_Imrecv関数

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

構文

int MPIAPI MPI_Imrecv(
  _Out_   void         *buf,
  _In_    int          count,
  _In_    MPI_Datatype datatype,
  _Inout_ MPI_Message  *message,
  _Out_   MPI_Request  *request
);

パラメーター

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

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

  • datatype [in]
    buf 内の要素の MPI データ型。

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

  • request [out]
    戻り値には、通信操作を表す MPI_REQUEST ハンドルへのポインターが含まれます。

戻り値

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

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

Fortran

    MPI_IMRECV(BUF, COUNT, DATATYPE, MESSAGE, REQUEST, IERROR)
        <type> BUF(*)
        INTEGER COUNT, DATATYPE, MESSAGE, REQUEST, IERROR

注釈

この関数は、 MPI_Mrecv の非ブロッキングバリアントであり、一致したメッセージの非ブロッキング受信を開始します。 完了セマンティクスは 、MPI_Irecvに似ています。

この関数から返されると、メッセージ ハンドルは MPI_MESSAGE_NULL に設定されます。

この関数がメッセージ引数としてMPI_MESSAGE_NO_PROCで呼び出された場合、呼び出しは要求オブジェクトをすぐに返します。この要求オブジェクトは、完了すると、MPI_PROC_NULLからの受信が発行されたかのように、ソース = MPI_PROC_NULLタグ = MPI_ANY_TAGcount = 0 に設定された状態オブジェクトを生成します。 MPI_MESSAGE_NULLを使用したこの関数の呼び出しが誤っています。

要件

製品

Microsoft MPI v6

ヘッダー

Mpi.h;Mpif.h

ライブラリ

Msmpi.lib

[DLL]

Msmpi.dll

こちらもご覧ください

MPI ポイント間関数

MPI_Irecv

MPI_Mrecv

MPI_Mprobe

MPI_Improbe