MPICH-2

From HP-SEE Wiki

Jump to: navigation, search

Contents


Authors/Maintainers

Mathematics and Computer Science Division, Argonne National Laboratory.

Summary

MPICH-2 is a high-performance, widely portable implementation of the MPI (Message- Passing Interface) standard, designed to implement all of MPI-1 and MPI-2 specifications (including dynamic process management, one-sided operations, parallel I/O, and other extensions).

MPICH-2 implementation replaces MPICH-1 and it is recommended to be used instead of MPICH-1 except for the case of clusters with heterogeneous data representations. It includes support for one-side communication, dynamic processes, intercommunicator collective operations, expanded MPI-IO functionality, and improved data type handling routines compared to MPICH.

MPICH-2 provides a separation of process management and communication. It provides several different process managers (process managers are basically external (typically distributed) agents that spawn and manage parallel jobs) such as Hydra, MPD, SMPD etc.

MPICH-2 is designed in that way so that a number of communication infrastructures can be used. These are called devices and channels. Each device is an underlying transport layer for the message passing. Several new devices and channels since MPICH-1 are introduced and their usage provides high performance both in intranode and internode communication, for example, Nemesis channel on ch3 device that provides communication using different networks (tcp, mx) as well as various shared-memory optimizations (for better performances within the compute node). MPICH2 supports C, C++, F77, and F90 languages and it is installed in standard configure/make manner. It is available on most platforms present today including the IBM Blue Gene/P systems but since BG/P’s front-end uses a different architecture than the actual compute nodes, MPICH2 has to be cross-compiled for this platform.

Features

  • Listed features

Architectural/Functional Overview

  • high level design info, how it works, performance - may be a link, or several links

Usage Overview

  • If possible with small example - may be a link

Dependencies

  • list of all relevant dependencies on other libraries

HP-SEE Applications

  • Applications using it

Resource Centers

Usage by Other Projects and Communities

  • If any

Recommendations for Configuration and Usage