One of the first steps in designing the custom message passing
layer for WARPED is to enumerate the goals of this message passing
layer. Some of the goals of TCPMPL are as follows:
- Low Software Overhead: The main goal of TCPMPL is to
reduce the overhead of the software communication layer in WARPED
- Functionalities: The next goal of TCPMPL is to support the
functionalities of a message passing layer that WARPED requires for
correct functional execution. The main functionalities WARPED needs
is SPMD, sending, receiving and probing of messages.
- Shared LANs: This is one of the important goals of TCPMPL.
TCPMPL will be run on shared LANs. The local network will be shared
among other internetwork applications running on any workstations. It
should not assume any dedicated switch to achieve a better communication
subsystem performance.
- Portability: The software should be portable to a majority
of platforms. Since it is developed exclusively for WARPED and
WARPED is used by many researchers, portability is one of the main
goals of TCPMPL.
Before designing the TCPMPL message passing library, the
features of a message passing layer that WARPED requires is
needed. The following are the features that must be supported by the
library for functional execution of WARPED:
- SPMD: The library must support the SPMD concept.
Programs compiled with the library should have the feature of
starting the parallel application on different machine and achieve
synchronization among themselves before the application code is executed.
- Message Delivery: The service provided by TCPMPL must be
reliable, and must ensure ordered delivery. Reliability is required as
the underlying network may not be reliable. In order to ensure
reliability, the message passing layer should take care of message
retransmission, if the message has not reached its destination. Another
feature which is indispensable is ensuring the FIFO property while
delivering the messages. The messages are to be delivered to the
destination process in the order in which they were sent. There is no
restriction on the messages from different processes. It is up to the
implementation to deliver messages from different processes in any
order.
- Message Boundary: When an user application sends a message
of a particular size, TCPMPL must maintain the message boundary when
giving the message to the receiver. Consider a sequence of messages of
sizes
,
, and
sent in this order to a destination
process. The destination process should first receive a message of size
, followed by a message of size
and then the message of size
. It should not deliver a message of size (
) bytes or
in any other combination.
- Send: The library must support the sending of messages
from one process on a machine to any other process.
- Probe: The user application must be able to poll for new
messages through TCPMPL, that can be received without blocking.
- Receive: The application must be able to receive messages
from any process in its process group.
Radharamanan Radhakrishnan
Mon Mar 15 18:20:48 EST 1999