next up previous
Next: Design Decisions Up: No Title Previous: No Title

Introduction

Within a surprisingly short time, the MPI message passing library emerged to become the library of choice for many high-performance parallel applications. It offers paradigms which are particularly well suited and convenient for scientific computing, and achieves high performance by leaving the burden of buffering mostly to the application.

The MPI library comprises 130 functions, and is often not built directly on top of the network layer, but follows the strategy of the MPICH implementation [6]. There, a portable MPI layer is implemented on top of the Abstract Device Interface (ADI) layer, which contains a set of about 40 machine-dependent point-to-point communication primitives. The ADI layer in turn uses system-specific reliable message passing facilities to provide its service.

In this paper, we will address the issues that come up when the ADI layer is built directly on top of U-Net [3][4], which provides an unreliable service (see Figure 1). To the best of our knowledge, the present work is the first report of MPI/ADI on top of any unreliable service. We achieve reliability inside the ADI layer with an extremely simple sliding window protocol.

 
Figure 1:   Protocol stack for our MPICH-based implementation of MPI on top of the unreliable U-Net service.

Eventually, a full implementation of ADI and a series of benchmarks on various platforms will be necessary to evaluate the quality of our protocol. Given that the ADI layer provides about 40 functions, this is not within the scope of a class project. As MPI is primarily deployed for high performance computing, we considered it necessary to implement at least part of the ADI layer to assess the overhead incurred. Two 200 MHz Pentium P6 platforms connected with Tulip Fast Ethernet served as the basis for our explorations.



Bernd Pfrommer
Mon May 26 12:18:25 PDT 1997