SBL Introduction

The SHRIMP project at Princeton studies ways for integration of commodity desktop computers such as PCs and workstations into inexpensive, high-performance multicomputers. The goal is to build an inexpensive system from off-the-shelf components with minimal custom-designed hardware. Ideally, such system should offer a performance competitive with or better than performance of specially designed multicomputers for both message passing and shared memory programming models.

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

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

Copyright (c) 1995, Princeton University