In the course of our research we have found that network interfaces of existing multicomputers and workstation networks introduce big software overhead on communication. The main reason for this overhead is that these network interfaces require a significant number of instructions at the operating system and user levels to provide protection and buffer management. Motivated by this fact we have designed two network interfaces (SHRIMP-I and SHRIMP-II) for low-latency, high-bandwidth user-to-user communication. More information on SHRIMP project can be found on WWW at http://shrimp.cs.princeton.edu/.
This document describes the SHRIMP Base Library (SBL) - a user-level library which provides an interface to SHRIMP-based message passing. The interface can be used on both SHRIMP-I (with some restrictions) and SHRIMP-II.
The goal of SBL interface is to allow for creation of libraries implementing variety of new and old interfaces for parallel and distributed programming. Examples of such libraries include message passing interfaces like PVM, NX/2, distributed shared memory and client-server interfaces like RPC.
This document consists of two parts:
The current version of SBL supports multicomputer parallel programs, and, to a certain degree, client-server computing. We plan to extend this interface to add more support for client-server paradigm without changing existing calls. We welcome input about functionality, bugs and possible extensions to the interface and its simulator. Please send your comments to dubnicki@cs.princeton.edu.