MPI_Mrecv 函数

对MPI_MprobeMPI_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

注解

此函数接收由匹配的探测操作匹配的消息。 接收缓冲区由包含 datatype 指定的类型的计数连续元素的存储组成,从地址 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