I believe that it MPI_SENDRECVexists as a convenience for programmers who want to use blocking semantics, but it is necessary to implement a switch operation. If you like non-blocking semantics, you should just use existing MPI_ISENDand MPI_IRECV.
Interestingly, MPI-3 will add non-blocking teams (for example, MPI_IBARRIER), but still no MPI_ISENDRECV(see http://meetings.mpi-forum.org/draft_standard/mpi3.0_draft_2.pdf ).
source
share