Home | GridMPI | GridTCP | Publications | Download

Curret Release: GridMPI-2.1.3

GridMPI version 1.1

The version 1.1 release GridMPI implements fully the specification of MPI-1.2 and major MPI-2.0 features. The MPI-1.2 part is fully tested with the test suites from ANL and Intel. GridMPI passes 100% of the functional tests of the suites. The MPI-2.0 part is lightly tested. We tested this package in: (1) Linux/IA32 packages RedHat 9, and Fedora Core 3; (2) IBM pSeries and Hitachi SR11000 using IBM-MPI as an underlying point-to-point communication layer; (3) Solaris8/SPARC64V using Fujitsu MPI and compilers; (4) NEC SX6 using NEC MPI and compilers.

To download the GridMPI version 1.1, go to the download page.

Implemented/Unimplemented Features

The following lists the features.

  • Full MPI-1.2 support.
  • IMPI (Interoperable MPI) support: IMPI is supported for inter-cluster communication. IMPI is a standard protocol for connecting multiple instances of MPI.
  • Checkpointing support: Checkpointing (fault tolerance by restarting) is available on Linux/IA32 platforms with 2.4 and 2.6 kernels.
  • "Vendor MPI" support: Vendor MPI uses platform-supplied MPI for local communication. Vendor MPI is available for IBM pSeries and Hitachi SR11000.

Supported Platforms

Platform Compilers Test Status Notes
Linux/IA32, RedHat 9GCCfully tested 
Linux/IA32, Fedora Core 4GCCcompile-and-run(1)
Linux/x86_64 (Opteron)GCC, PGI, Pathscalecompile-and-run 
IBM AIX/PowerIBMfully tested(2)
Hitachi SR11K (AIX/Power)Hitachi f90compile-and-run(2)
Fujitsu Solaris8/SPARC64VFujitsufully tested(3)
Solaris10/SPARCSun, GCCcompile-and-run 
NEC SX6NECcompile-and-run(4)
  • (1) Requires gcc-4.0.1 or above
  • (2) Uses IBM MPI as a vendor MPI
  • (3) Uses Fujitsu MPI as a vendor MPI
  • (4) Uses NEC MPI as a vendor MPI

Network and Other Configurations

Configuration restrictions:

  • The every host in clusters need to be IP global address reachable. [faq]

Simple and Startup Usage

Installation Procedure describes a step-by-step installation and test procedure to run simple tests.

Quick Usage describes a simple usage and a very brief overview of the GridMPI.


  • mpirun: MPI process starter. It starts MPI processes in a cluster. It includes an option to specify a cluster number in a multi-cluster configuration in addition to ordinary options.
  • mpicc: Compiler frontend.
  • mpic++: Compiler fontend (supporting C++ binding).
  • mpif77: Compiler frontend.
  • mpif90: Compiler frontend.
  • impi-server: IMPI server. A contact point to join clusters in a multi-cluster configuration. It is specified in the IMPI specification.
  • gridmpirun: Simple frontend to mpirun. It can run mpirun across multiple cluster sites.
  • canquit: Command wrapper to set signal state of a background process. It sets interrupt and quit signals to default state, and runs a command.
  • detach: Command wrapper to set session of a background process. It sets a session and runs a command.
  • nsd: Network signal deliverer to start checkpointing. It is used by gridmpirun to pass caught signals to remote sites. It resides at the both ends of SSH and encodes and passes signals through a pipe of stdio.
  • gnamesv: Simple MPI-2.0 name server for process spawning.
  • mpifork: Static process spawner for mpirun. Type mpifork -h for online help.
  • pspd: PSPacer control daemon. It delegates bandwidth control requests to the PSPacer kernel module.

Environment Variables

A few environment variables are important and some are mandatory. The following is an extract from the full list.

See the full-list of the environment variables.

  • MPIROOT directory: Specifies a GridMPI installation directory. Commands such as mpirun and mpicc searches in the directory for necessary binary and library files.
  • IMPI_AUTH_NONE any: Specifies NOT to use any authentication in connecting to the IMPI Server. The value is ignored. This is required, and both of a run of IMPI Server and a run of mpirun should set this. Other authentication protocols are described in the full list of the environment variables.
  • _YAMPI_RSH remote-shell-command: Specifies a remote shell command. Typical choice is "rsh" or "ssh". RSH is the default.

Configure Options (for Administrators)

Configuration at compile time is specified by the configure. The following configure options are available:

configure [--with-binmode=no/32/64] [--with-vendormpi=no/ibmmpi/mpich/mpich2/intelmpi/fjmpi/mpisx] [--with-libckpt=yes/no] [--with-libpsp=yes/no] [--enable-debug] [--enable-threads] [--disable-unix] [--disable-prof-feature]

Implementation Problemns and Issues

See Implementation Status for known problems, compatibility issues, and open issues.

See MPI Implementation Status for support levels of MPI-2 features.

See Checkpoint/Restart Implementation Status for support levels of checkpointing feature.

($Date: 2006-09-12 09:44:38 $)