MPI_Imrecv function

Performs a non-blocking receive for a message matched by MPI_Mprobe or MPI_Improbe.

Syntax


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

Parameters

buf [out]

A pointer to the address of the receive buffer.

count [in]

The number of datatype elements in buf.

datatype [in]

The MPI data type of the elements in buf.

message [in, out]

Contains a pointer to the message.

request [out]

On return, contains a pointer to an MPI_REQUEST handle representing the communication operation.

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_IMRECV(BUF, COUNT, DATATYPE, MESSAGE, REQUEST, IERROR)
    <type> BUF(*)
    INTEGER COUNT, DATATYPE, MESSAGE, REQUEST, IERROR

Remarks

This function is the non-blocking variant of MPI_Mrecv and starts a non-blocking receive of a matched message. Completion semantics are similar to MPI_Irecv.

On return from this function, the message handle is set to MPI_MESSAGE_NULL.

If this function is called with MPI_MESSAGE_NO_PROC as the message argument, the call returns immediately with a request object which, when completed, will yield a status object set to source = MPI_PROC_NULL, tag = MPI_ANY_TAG, and count = 0, as if a receive from MPI_PROC_NULL was issued. A call to this function with MPI_MESSAGE_NULL is erroneous.

Requirements

Product

Microsoft MPI v6

Header

Mpi.h;
Mpif.h

Library

Msmpi.lib

DLL

Msmpi.dll

See also

MPI Point to Point Functions
MPI_Irecv
MPI_Mrecv
MPI_Mprobe
MPI_Improbe

 

 

Show: