next up previous contents
Next: How to Use Up: Multi Program-Components Handshaking (MPH) Previous: Copyright

Introduction

   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.



Yun (Helen) He
Mon Mar 3 10:31:17 PST 2003