MPH Version 3 combines all features of MPH version 1, unifies the
interfaces, and provides more flexible components integration/execution
modes.
In a distributed multi-component environment, each executable resides
on a set of SMP nodes. Components within an executable may overlap on
different nodes or processors.
MPH Version 3 contains the following functionality:
o component name registration
o resource allocation
o multi-component single executable, multi-component
multi-executable, etc.
o inter-component communication
o inquiry on the multi-component environment
o standard in/out redirect
Please see more information at
http://www.nersc.gov/research/SCG/acpi/MPH
and please list the following in your reference if useful:
"MPH: a Library for Distributed Multi-Component Environment"
Chris Ding and Yun He, Lawrence Berkeley Nat'l Lab Tech
Report 47930, May 2001.
Consider the entire simulation system (CCSM) consists of many
executables, each executable containing one or more components.
This architecture offers complete flexibility, and is consistent
with CORBA, DCE, CCA et al.
1) Every executable starts with
mpi_exec_world = &
MPH_components(name1='ocean', name2='atmosphere',...)
You may have only one component in this executable, or up to
10 components in this executable. Component names are nametags
(place holder) and are completely arbitrary. They must be
self-consistently used, and match the "processors_map.in"
registration file. This setup subroutine replaces MPH_setup()
in MPH version 1. All other MPH functionality remains identical.
2) Some usages:
a) CCSM example. Ice & Land share one executable.
coupler - one executable
atmosphere - one executable
ocean - one executable
ice & land - one executable with 2 components,
they may overlap on processors
b) CCSM example. Multiple instances of atmosphere.
coupler - one executable
atmosphere - one executable of 3 components
each is a CCM instance of a different Dycore.
ocean - one executable
land - one executable with 3 components for CCMs.
each is a land model to match the CCM
ice - one executable
c) PCM example.
couple - one executable
atmosphere & land - one executable
ocean & ice - one executable
3) "processors_map.in" registration file
The following example contains 3 executables:
1st executable has a single component: coupler
2nd executable has 2 components: ocean, ice
3rd executable has 3 components: atmosphere, land, chemistry
BEGIN
coupler
Multi_Comp_Start
2
ocean 0 3
ice 4 10
Multi_Comp_End
Multi_Comp_Start
3
atmosphere 0 10
land 11 13
chemistry 14 25
Multi_Comp_End
END
a) Allocation of processors for each executable is controlled
by job launching process (different on IBM, SGI, Compaq).
b) Processor ranges for each components are defined local
to the exeutable.