IBM has been a consistently strong supporter of MPI. IBM's implementation of MPI for its SP systems was one of the first vendor-supported MPI implementations. MPI has replaced IBM's proprietary library MPL as the preferred message passing library on SP systems. The first optimized version of MPI available for SP systems, MPI-F, was a research prototype based on MPICH. The currently available implementation of MPI (hereafter referred to as IBM MPI) is rewritten from scratch .
IBM MPI runs on IBM SP systems and AIX workstation clusters in one of two modes. In User Space (US) mode, an MPI application has direct access to the SP high performance switch (if one exists). This provides the best performance, with the restriction that only one process may access the switch on each node. In IP mode, MPI processes communicate using IP -- over the high performance switch if it exists, or over any other network if not. Latency (minimum message transfer time) in US mode is an order of magnitude lower than in IP mode.
IBM MPI is integrated with IBM's Parallel Environment (PE) and Parallel Operating Environment (POE), which are layered software packages that provide the ``glue'' allowing an SP (or cluster) to function as a single machine. Assuming PE and POE are installed correctly (no small feat) MPI works as an integrated piece of software: compilers mpcc and mpxlf compile C and Fortran MPI programs; poe launches parallel MPI programs; I/O is handled in a reasonable way; signals are propagated from the poe launcher to MPI processes; the debuggers pdbx and pedb understand parallel programs.