共用方式為


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中的資料類型專案數目。

  • 資料類型 [in]
    buf中專案的 MPI 資料類型。

  • 訊息 [in, out]
    包含訊息的指標。

  • 要求 [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_ANY_TAG,以及count = 0,就像發出來自MPI_PROC_Null的接收一樣。 對具有 MPI_MESSAGE_Null 之此函式的呼叫錯誤。

規格需求

產品

Microsoft MPI v6

標頭

Mpi.h;Mpif.h

媒體櫃

Msmpi.lib

DLL

Msmpi.dll

另請參閱

MPI 點對點函式

MPI_Irecv

MPI_Mrecv

MPI_Mprobe

MPI_Improbe