The message passing programs used in the previous chapter had only two kinds of statements: a single type of send and a single type of receive. In any MPI implementation, all the MPI communication functions described in the previous section are also translated into a very simple set of sends and receives. In Section 5.3.1, we describe how this is done. In Section 5.3.2, we present a simulation model for the core communication functions. In Section 5.3.3, we describe how this simulation model is simulated in parallel using the protocol presented in the previous chapter.