MPICH-2

From HP-SEE Wiki

Revision as of 21:34, 3 July 2011 by Slavnic (Talk | contribs)
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

  • RCs supporting it (with version number if not the same as above)

Usage by Other Projects and Communities

  • If any

Recommendations for Configuration and Usage

Please describe here any common settings, configurations or conventions that would make the usage of this resource (library or tool) more interoperable or scalable across the HP-SEE resources. These recommendations should include anything that is related to the resource and is agreed upon by administrators and users, or across sites and applications. These recommendations should emerge from questions or discussions opened by site administrators or application developers, at any stage, including installation, development, usage, or adaptation for another HPC centre.

Provided descriptions should describe general or site specific aspects of resource installation, configuration and usage, or describe the guidelines or convention for deploying or using the resource within the local (user/site) or temporary environment (job). Examples are:

  • Common configuration settings of execution environment
  • Filesystem path or local access string
  • Environment variables to be set or used by applications
  • Options (e.g. additional modules) that are needed or required by applications and should be present
  • Minimum quantitative values (e.g. quotas) offered by the site
  • Location and format of some configuration or usage hint instructing applications on proper use of the resource or site specific policy
  • Key installation or configuration settings that should be set to a common value, or locally tweaked by local site admins
  • Conventions for application or job bound installation and usage of the resource
Personal tools