Progressive messages: tracking message progress through events - Aycock, CC (2011)
This thesis introduces the Progressive Messages model of communication. It is an event-driven framework for building scalable parallel and distributed computing applications on modern networks. In particular, the paradigm provides notification of message termination. That is, when a message succeeds or fails, the user’s application can capture an event (often through a callback) and perform a designated action. The semantics of the Progressive Messages model are defined as an extension to the message-driven model, which is like an asynchronous RPC. Together, these models can be contrasted to the message-passing model (the basis of Sockets and MPI), which has no event notification. Using Progressive Messages allows for a more scalable design than permitted by either the message-passing or message-driven model. In particular, Progressive Messages can handle communication concurrently with computation, which means that one process does not need to wait in order to service a request or response from another process. This overlap leads to more efficiency. As part of the study of Progressive Messages, we create the MATE (Message Alerts Through Events) library, which is a prototype API that supports event notification in communication. This API was implemented in both MPI and InfiniBand verbs (OpenFabrics). "Unit tests" of network metrics shows that there is some latency in event-driven message handling, though it is difficult to determine if the source of the latency is hardware or software based. The goal of the Progressive Messages model is that parallel and distributed computing applications will be easier to build and will be more scalable.