Fast RPC on the SHRIMP Virtual Memory Mapped Network Interface

The emergence of new network interface technology is enabling new approaches to the development of communications software. This paper evaluates the SHRIMP virtual memory mapped network interface by using it to build two fast implementations of remote procedure call (RPC). Our first implementations, called vRPC, is fully compatible with the SunRPC standard. We change the RPC runtime library, the operating system kernel is unchanged, and only a minimal change was needed in the stub generator to create a new protocol identifier. Despite these restrictions, our vRPC implementation is several times faster than existing SunRPC implementations. A round-trip null RPC with no arguments and results under vRPC takes about 33 ?s. Our second implementation, called ShrimpRPC, is not compatible with SunRPC but offers much better performance. ShrimpRPC specializes the stub generator and runtime library to take full advantage of SHRIMP's features. The result is a round-trip null RPC latency of 9.5 ?s, which is about 1 ?s above the hardware minimum.

[1]  Sun Microsystems,et al.  RPC: Remote Procedure Call Protocol specification: Version 2 , 1988, RFC.

[2]  Kai Li,et al.  Network Interface Support for User-Level Buffer Management , 1994, PCRCW.

[3]  Kai Li,et al.  Early Experience with Message-Passing on the SHRIMP Multicomputer , 1996, 23rd Annual International Symposium on Computer Architecture (ISCA'96).

[4]  Raj Srinivasan,et al.  XDR: External Data Representation Standard , 1995, RFC.

[5]  Kai Li,et al.  Virtual-Memory-Mapped Network Interfaces , 1995, IEEE Micro.

[6]  David R. Cheriton The V Kernel: A Software Base for Distributed Systems , 1984, IEEE Software.

[7]  Brian N. Bershad,et al.  Lightweight remote procedure call , 1989, TOCS.

[8]  Kai Li,et al.  Protected, user-level DMA for the SHRIMP network interface , 1996, Proceedings. Second International Symposium on High-Performance Computer Architecture.

[9]  Kai Li,et al.  Retrospective: virtual memory mapped network interface for the SHRIMP multicomputer , 1994, ISCA '98.

[10]  Willy Zwaenepoel,et al.  The peregrine high‐performance RPC system , 1993, Softw. Pract. Exp..

[11]  Brian N. Bershad,et al.  User-level interprocess communication for shared memory multiprocessors , 1991, TOCS.

[12]  Anna R. Karlin,et al.  Empirical studies of competitve spinning for a shared-memory multiprocessor , 1991, SOSP '91.

[13]  Robbert van Renesse,et al.  The performance of the Amoeba distributed operating system , 1989, Softw. Pract. Exp..

[14]  Henry M. Levy,et al.  Limits to low-latency communication on high-speed networks , 1993, TOCS.

[15]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[16]  Seth Copen Goldstein,et al.  Active messages: a mechanism for integrating communication and computation , 1998, ISCA '98.

[17]  Wilson C. Hsieh,et al.  Optimistic active messages: a mechanism for scheduling communication with computation , 1995, PPOPP '95.

[18]  Michael Burrows,et al.  Performance of Firefly RPC , 1990, ACM Trans. Comput. Syst..

[19]  Ken Thompson,et al.  The UNIX time-sharing system , 1974, CACM.

[20]  Alec Wolman,et al.  Latency Analysis of TCP on an ATM Network , 1994, USENIX Winter.

[21]  Liviu Iftode,et al.  Software support for virtual memory-mapped communication , 1996, Proceedings of International Conference on Parallel Processing.