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 |