In the previous chapter, we showed that when data parallel programs are compiled for execution on multicomputers, they are converted into message passing programs which contain exclusively deterministic communication patterns. We exploited this property to provide fast simulation of data parallel programs. For general message passing programs, techniques to simulate non-deterministic patterns must be devised as well. In this chapter, we start afresh by adapting existing theory on parallel simulation to the specific problem of parallel simulation of message passing parallel programs. We present the conservative simulation protocol used in the simulation engine for MPI programs, whose design and implementation are described in the following chapter. The contributions of this chapter include: