Tripwire: A Synchronisation Primitive for Virtual Memory Mapped Communication

Existing user-level network interfaces deliver high bandwidth, low latency performance to applications, but are typically unable to support diverse styles of communication and are unsuitable for use in multiprogrammed environments. Often this is because the network abstraction is presented at too high a level, and support for synchronisation is inflexible. In this paper we present a new primitive for in-band synchronisation: the Tripwire. Tripwires provide a flexible, efficient and scalable means for synchronisation that is orthogonal to data transfer. We describe the implementation of a non-coherent distributed shared memory network interface, with Tripwires for synchronisation. This interface provides a low-level communications model with gigabit class bandwidth and very low overhead and latency. We show how it supports a variety of communication styles, including remote procedure call, message passing and streaming.

[1]  David E. Culler,et al.  An Implementation and Analysis of the Virtual Interface Architecture , 1998, Proceedings of the IEEE/ACM SC98 Conference.

[2]  William I. Nowicki,et al.  NFS: Network File System Protocol specification , 1989, RFC.

[3]  Jeffrey C. Mogul,et al.  Scalable Kernel Performance for Internet Servers Under Realistic Loads , 1998, USENIX Annual Technical Conference.

[4]  Cezary Dubnicki,et al.  VMMC-2 : Efficient Support for Reliable, Connection-Oriented Communication , 1997 .

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

[6]  Anoop Gupta,et al.  The Stanford FLASH multiprocessor , 1994, ISCA '94.

[7]  Andy Hopper,et al.  Remoting Peripherals using Memory-Mapped Networks , 1998 .

[8]  Thorsten von Eicken,et al.  Incorporating Memory Management into User-Level Network Interfaces , 1997 .

[9]  Thorsten von Eicken,et al.  U-Net: a user-level network interface for parallel and distributed computing , 1995, SOSP.

[10]  Edward W. Felten,et al.  Reducing waiting costs in user-level communication , 1997, Proceedings 11th International Parallel Processing Symposium.

[11]  Greg J. Regnier,et al.  The Virtual Interface Architecture , 2002, IEEE Micro.

[12]  Richard Kaufmann,et al.  Using the Memory Channel Network , 1997, IEEE Micro.

[13]  Maurice V. Wilkes,et al.  The collapsed LAN: a solution to a bandwidth problem? , 1997, CARN.

[14]  Anoop Gupta,et al.  Parallel computer architecture - a hardware / software approach , 1998 .

[15]  Peter Druschel,et al.  A Scalable and Explicit Event Delivery Mechanism for UNIX , 1999, USENIX Annual Technical Conference, General Track.

[16]  Chris J. Scheiman,et al.  High-Performance Cluster Computing Using SCI , 1997 .

[17]  Angelos Bilas,et al.  User-Space Communication: A Quantitative Study , 1998, Proceedings of the IEEE/ACM SC98 Conference.

[18]  Bernard Tourancheau,et al.  The Design for a High-Performance MPI Implementation on the Myrinet Network , 1999, PVM/MPI.

[19]  Stamatis Vassiliadis,et al.  Parallel Computer Architecture , 2000, Euro-Par.

[20]  David Riddoch,et al.  A Low Overhead Application/Device-driver Interface for User-level Networking , 2001 .

[21]  Charles L. Seitz,et al.  Myrinet: A Gigabit-per-Second Local Area Network , 1995, IEEE Micro.