Portability of MPICH


Up: Portability and Performance Next: Exploiting High-Performance Switches Previous: Portability and Performance

The MPI standard itself addresses the message-passing model of parallel computation. In this model, processes with separate address spaces (like Unix processes) communicate with one another by sending and receiving messages. A number of different hardware platforms support such a model.



Up: Portability and Performance Next: Exploiting High-Performance Switches Previous: Portability and Performance


Exploiting High-Performance Switches


Up: Portability of MPICH Next: Exploiting Shared-Memory Architectures Previous: Portability of MPICH

The most obvious hardware platform for MPI is a distributed-memory parallel supercomputer, in which each process can be run on a separate node of the machine, and communication occurs over a high-performance switch of some kind. In this category are the Intel Paragon, IBM SP2, Meiko CS-2, Thinking Machines CM-5, NCube-2, and Cray T3D. (Although the Cray T3D provides some hardware that allows one to treat it as a shared-memory machine, it falls primarily into this category; see [4].) Details of how MPICH is implemented on each of these machines are given in Section Architecture of MPICH , and performance results for the Paragon and SP2 are given in Section Performance of MPICH .



Up: Portability of MPICH Next: Exploiting Shared-Memory Architectures Previous: Portability of MPICH


Exploiting Shared-Memory Architectures


Up: Portability of MPICH Next: Exploiting Networks of Workstations Previous: Exploiting High-Performance Switches

A number of architectures support a shared-memory programming model, in which a memory location can be both read and written to by multiple processes. Although this is not part of MPI's computational model, an MPI implementation may take advantage of capabilities in this area offered by the hardware/software combination to provide particularly efficient message-passing operations. Current machines offering this model include the SGI Onyx, Challenge, Power Challenge, and Power Challenge Array machines, IBM SMP's (symmetric multiprocessors), the Convex Exemplar, and the Sequent Symmetry. MPICH is implemented using shared memory for efficiency on all of these machines (details in Section Architecture of MPICH ). Performance measurements for the SGI are given in Section SGI Power Challenge Measurements .



Up: Portability of MPICH Next: Exploiting Networks of Workstations Previous: Exploiting High-Performance Switches


Exploiting Networks of Workstations


Up: Portability of MPICH Next: Performance of MPICH Previous: Exploiting Shared-Memory Architectures

One of the most common parallel computing environments is a network of workstations. Many institutions use Ethernet-connected personal workstations as a ``free'' computational resource, and at many universities laboratories equipped with Unix workstations provide both shared Unix services for students and an inexpensive parallel computing environment for instruction. In many cases, the workstation collection includes machines from multiple vendors. Interoperability is provided by the TCP/IP standard. MPICH runs on workstations from Sun (both SunOS and Solaris), DEC, Hewlett-Packard, SGI, and IBM. Recently, the Intel 486 and Pentium compatible machines have been able to join the Unix workstation family by running one of the common free implementations of Unix, such as FreeBSD, NetBSD, or Linux. MPICH runs on all of these workstations and on heterogeneous collections of them. Details of how heterogeneity is handled are presented in Section Architecture of MPICH , and some performance figures for Ethernet-connected workstations are given in Section Performance of MPICH .

An important family of non-Unix operating systems is supported by Microsoft. MPICH has been ported to Windows 3.1 (where it simulates multiprocessing on a single processor); the system is called WinMPI [37,38].



Up: Portability of MPICH Next: Performance of MPICH Previous: Exploiting Shared-Memory Architectures