next up previous
Next: Keeping Track of Up: Basic Simulator Design Previous: Communicator Implementation

Message Delivery

In MPI, messages are sent only between processes. In MPISIM, messages data and acknowledgement messages are exchanged between threads, which may be on the same or different processes. Protocol messages, containing the EOTs and ECOTs of threads on the process from which they are sent, are exchanged only between processes. Consequently, the simulation software needs to support both interthread message delivery and interprocess message delivery. Interthread message delivery is obviously faster, and depending on the semantics of the send operation, is made even faster by passing only a pointer to the message body. For example, messages sent using MPI_Issend are passed as pointers, since the message body will not be reused by the sending thread until the receiver thread has accepted the message. This assumption is not valid for messages sent using MPI_Ibsend however, so a copy of the message body is made and sent. Interprocess message delivery is performed using MPI, as mentioned in Section 5.4.1.1.



next up previous
Next: Keeping Track of Up: Basic Simulator Design Previous: Communicator Implementation



Andy Kahn
Wed Jun 25 20:28:02 PDT 1997