MPH: a Library for Distributed Multi-Component Environment

Many large and complex HPC simulation system consists of semi-independent program components developed by different groups or for different purposes. For example, climate system consists of atmosphere, ocean, land, sea-ice components. It is desirable to let the semi-indenpendent components remain standalone executables.

On distributed memory parallel supercomputers, each executable needs to find who are the other components, what's their names, their sizes and needs to initialize communication channels between independent components. These are among the first critical steps in establishing a distributed multi-component environment.

MPH, a multi program-component handshaking library, resolves these tasks in a convenient and consistent way. MPH uses MPI for high performance. It is simple and easy-to-use. One may simply adop it in developing practical codes; or one may use it as a basis for larger software tools/frameworks.

MPH supports all modes of execution/software integration

Newest Version:

MPH4 : Multi-Component exec. Multi-Executable system

Previous Versions:

MPH1 : Single-Component exec. Multi-Executable system

MPH2 : Multi-Component exec. Single-Executable system

MPH3 : Multi-Component exec. Multi-Executable system

MPH4 supports all the functionalities of previous versions, plus a multi-instance executbale mode.

A recent paper that describes MPH (in pdf)

A slide presentation (in ppt)

MPH runs currently on
MPH is currently used in

Questions and technical issues, send us email. If you find MPH useful, please also drop us an email.

Two related modules:

1. Redirect: redirect output uning environment variable

2. Timer: timing info in different channels

Last modified on May 29, 2003.

Yun Helen He (, Chris Ding (

Back to NERSC ACPI Homepage

Number of visits since 05/23/2001: