MPI_Improbe 函数

以非阻止方式探测消息。 提供一种机制,用于接收匹配的特定消息,而不考虑干预探测/接收操作。 匹配的消息将从接收队列中取消排队,使应用程序有机会根据非阻塞匹配探测操作返回的信息来决定如何接收消息。 然后使用 MPI_MrecvMPI_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]
    返回时,包含指向整数的指针,该整数指示是否匹配指定的 标记通信 。 非零值指示参数匹配。

  • 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

注解

如果存在可接收的消息并且与参数 sourcetagcomm 指定的模式匹配,则此函数返回标志 = 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