The communication mode is selected with the send routine. There are four blocking send routines and four non-blocking send routines, corresponding to the four communication modes. The receive routine does not specify communication mode -- it is simply blocking or non-blocking.
Here is a summary of the send and receive calls that will be covered in this module:
| Communication Mode |
Blocking Routines |
Non-Blocking Routines |
| Synchronous |
MPI_Ssend |
MPI_Issend |
| Ready |
MPI_Rsend |
MPI_Irsend |
| Buffered |
MPI_Bsend |
MPI_Ibsend |
| Standard |
MPI_Send |
MPI_Isend |
|
MPI_Recv |
MPI_Irecv |
|
MPI_Sendrecv |
|
|
MPI_Sendrecv_replace |
|
We'll start by examining the behavior of blocking communication for the four modes, beginning with synchronous mode. For compactness, we'll delay examination of non-blocking behavior until a later section.