Definition
MPI_Irsend is a standard non-blocking send. The difference with MPI_Isend is the capital 'R'that stands for Ready. Indeed, MPI_Irsend requires the corresponding receive (MPI_Recv or MPI_Irecv) to have been issued first. This particularity may improve performance by saving the time normally spent hand-shaking with the receiving MPI process (since the receiver is already ready to receive the message). An MPI_Irsend has the same semantics as MPI_Isend; it will decide whether to use the synchronous or asynchronous mode using the same decision flow that MPI_Isend. As a non-blocking send, MPI_Irsend will immediately return and the buffer passed must not be seen as safe to reuse until the completion of MPI_Irsend has been checked with MPI_Wait or MPI_Test. Other non-blocking sends are MPI_Isend, MPI_Issend, MPI_Ibsend. Refer to MPI_Rsend to see the blocking counterpart of MPI_Irsend.
int MPI_Irsend(const void* buffer,
int count,
MPI_Datatype datatype,
int recipient,
int tag,
MPI_Comm communicator,
MPI_Request* request);