Although MPI provides an extensive set of calls, a functional MPI program can be written with just six basic calls:
- MPI_INIT
- MPI_COMM_RANK
- MPI_COMM_SIZE
- MPI_SEND
- MPI_RECV
- MPI_FINALIZE
For programming convenience and code optimization, you should consider using other calls, such as those described in the modules on Point to Point Communication and Collective Communication.
MPI Messages
MPI messages consist of two parts:
- data (startbuf, count, datatype)
- envelope (destination/source, tag, communicator)
The data defines the information to be sent or received. The envelope is used in routing messages to the receiver, and in matching send calls to receive calls.
Communicators
Communicators guarantee unique message spaces. In conjunction with process groups, they can be used to limit communication to a subset of processes.