CMPI

C-MPI - Optimized MPI for Cluster of Multi Processors

The message-passing model of parallel computation has emerged as an efficient and recognized paradigm for parallel programming. The Message Passing Interface (MPI) is a standard for message passing, defined by a panel of parallel programming industry leaders including representatives from the national laboratories, universities and key parallel system vendors. Several parallel applications have been implemented using MPI calls.

C-MPI is a high performance implementation of the MPI standard for a Cluster of Multi Processors (CLUMPS). By adhering to the standards, C-MPI supports the execution of the multitude of MPI applications with enhanced performance on a CLUMPS.

MPI OVERVIEW

MPI is a message-passing application programming interface. It includes point-to-point message passing and collective (global) operations. MPI also provides three additional categories of services: environmental inquiry, basic timing information, and a profiling interface for performance monitoring. It supports heterogeneous data conversion by stipulating data type specifications for all communication operations.

MPI supports both the SPMD and MIMD modes of parallel programming. It also supports inter application communications through inter communicator operations, which supports communication between groups rather than within a single group. MPI supports a thread-safe application-programming interface.

To facilitate simultaneous communication among many parallel processes, MPI provides collective communication functions.

Collective operations under MPI include:

  • Data movement operations, which are used to rearrange data among the processes. Broadcast and many elaborate scattering and gathering data movement operations are supported in MPI
  • Collective computation that includes standard operations like minimum, maximum, sum, logical /user defined operation

KEY FEATURES

  • Adheres to MPI standards, based on the MPICH implementation from Argonne National Lab and Mississippi State University
  • Provides optimal performance for MPI applications on a Cluster of Multi Processors (CLUMPS)
  • Supports applications written in Fortran, C
  • Provides enhanced performance on the PARAM Padma by exploiting the hardware communication features

C-MPI OPTIMIZATION MODEL

C-MPI optimizes a subset of MPI collective calls by using efficient algorithms for a CLUMPS architecture. It also leverages on the fact that most of the high performance networks provide a substantial exchange communication bandwidths. This allows the tuned algorithms to simultaneously send and receive messages over the network, which in turn helps to reduce the number of communication hops. In addition, the algorithms effectively use the higher shared memory communication bandwidths on multi processor nodes.

For optimal performance on the PARAM Padma, C-MPI can be operated directly over the high performance system area networks in user space, using lightweight communication protocols. These protocols substantially improve the point-to-point communication performance. As a result, the C-MPI collective calls perform better as compared to the implementation over the Internet Protocol (IP).

COMPATIBILITY WITH MPI

C-MPI is based on the MPICH implementation from Argonne National Lab and Mississippi State University and implements all MPI functions. The implementation closely follows the published standard and allows programmers to write portable parallel applications, which operate on the PARAM OpenFrame system and other Cluster systems supporting the standard. MPI applications only need to be relinked with C-MPI libraries to function on the CLUMPS.

Availability

Supported Hardware Workstation Clusters
Supported Operating System AIX, Solaris and Linux
User Interfaces Command Line
Supported Languages Fortran and C
Prerequisite hardware for
Lightweight Protocols
PARAMNet, Gigabit Ethernet