I'm curious at the lack of this function in MPI:
MPI_Isendrecv( ... );
i.e., a non-blocking send and receive, can anyone tell me the rationale behind its omission?
My take is that MPI_SENDRECV
exists as a convenience for programmers who want to use blocking semantics, but need to implement a shift operation. If you're comfortable with non-blocking semantics, you should simply use the existing MPI_ISEND
and MPI_IRECV
.
Interestingly, MPI-3 will add non-blocking collectives (e.g. MPI_IBARRIER
), but still no MPI_ISENDRECV
(see http://meetings.mpi-forum.org/draft_standard/mpi3.0_draft_2.pdf ).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With