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 |
|
|
Library |
|
|
DLL |
|
See also