Early Experience with Message-Passing on the SHRIMP Multicomputer
|Authors:||Felten, Edward W., Alpert, Richard D., Bilas, Angelos, Blumrich, Matthias A., Clark, Douglas W., Damianakis, Stefanos N., Dubnicki, Cezary, Iftode, Liviu, Li, Kai|
The SHRIMP multicomputer provides virtual memory-mapped communication (VMMC), which supports protected, user-level message passing, allows user programs to perform their own buffer management, and separates data transfers from control transfers so that a data transfer can be done without the intervention of the receiving node CPU. An important question is whether such a mechanism can indeed deliver all of the available hardware performance to applications which use conventional message-passing libraries. This paper reports our early experience with message-passing on a small, working SHRIMP multicomputer. We have implemented several user-level communication libraries on top of the VMMC mechanism, including the NX message-passing interface, Sun RPC, stream sockets, and specialized RPC. The first three are fully compatible with existing systems. Our experience shows that the VMMC mechanism supports these message-passing interfaces well. When zero-copy protocols are allowed by the semantics of the interface, it can effectively deliver to applications almost all of the raw hardware's communication performance.