Communication Modes


Up: Buffering issues Next: Buffered Send Previous: More on nonblocking communication

MPI provides mulitple modes for sending messages:

  • Synchronous mode ( MPI_Ssend): the send does not complete until a matching receive has begun. (Unsafe programs become incorrect and usually deadlock within an MPI_Ssend.)
  • Buffered mode ( MPI_Bsend): the user supplies the buffer to system for its use. (User supplies enough memory to make unsafe program safe).
  • Ready mode ( MPI_Rsend): user guarantees that matching receive has been posted.
    -- allows access to fast protocols
    -- undefined behavior if the matching receive is not posted

    Non-blocking versions:
    MPI_Issend, MPI_Irsend, MPI_Ibsend

    Note that an MPI_Recv may receive messages sent with any send mode.



    Up: Buffering issues Next: Buffered Send Previous: More on nonblocking communication