|
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 operations
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 |
|

|