MPI_Mprobe function

Blocking probes for a message. Provides a mechanism to receive the specific message that was matched regardless of intervening probe/receive operations. The matched message is de-queued off the receive queue, giving the application an opportunity to decide how to receive the message based on the information returned by the matching probe operation. The matched message is then received using the MPI_Mrecv or MPI_Imrecv function.

Syntax

int MPIAPI MPI_Mprobe(
  _In_  int         source,
  _In_  int         tag,
  _In_  MPI_Comm    comm,
  _Out_ MPI_Message *message,
  _Out_ MPI_Status  *status
);

Parameters

  • source [in]
    Source rank or MPI_ANY_SOURCE.

  • tag [in]
    Message tag or MPI_ANY_TAG.

  • comm [in]
    MPI communicator handle.

  • message [out]
    On return, contains a pointer to the matched message.

  • status [out]
    On return, contains a pointer to an MPI_Status structure where information about the message is stored.

Return value

Returns MPI_SUCCESS on success. Otherwise, the return value is an error code.

In Fortran, the return value is stored in the IERROR parameter.

Fortran

    MPI_MPROBE(SOURCE, TAG, COMM, MESSAGE, STATUS, IERROR)
          INTEGER SOURCE, TAG, COMM, MESSAGE, STATUS(MPI_STATUS_SIZE), IERROR

Remarks

This function behaves like MPI_Improbe except that it is a blocking call that returns only after a matching message has been found.

Requirements

Product

Microsoft MPI v6

Header

Mpi.h; Mpif.h

Library

Msmpi.lib

DLL

Msmpi.dll

See also

MPI Point to Point Functions

MPI_Improbe

MPI_Recv

MPI_Imrecv