Multi Process Handshaking (MPH) Utility MPH1: Multiple Components, Multiple Executables This is a small utility of global handshaking among different component models. Each component will run on different number of nodes and processors. The global processor ids don't have to be continuous for each component. You could get the source code as a tar file or access the individual files as follows: MPH.outline: brief introduction README: this file mph.F: MPH_comm module ccm.F: driver for atmosphere model ccm1.F: stand-alone atmosphere model pop.F: driver for ocean model cpl.F: driver for coupler Makefile: makefile. MPH is defined here as CPP. components.in: input component model names tasklist: model executable jobs list tasklist.desp: more info on tasklist script: loadleveler batch script output: sample output from interactive run Makefile.ncar: a makefile used to compile on NCAR IBM, SGI and Compaq. To compile and run on NERSC IBM SP: ================================= 1) Type "make", 3 executables will be created: ccm, pop, cpl 2) to run interactive job: a) unset environment variable "MP_TASKS_PER_NODE" b) type in ONE LINE: poe -pgmmodel mpmd -cmdfile tasklist -nodes 6 -procs 9 -stdoutmode ordered -infolevel 2 > & output & 3) to run batch job: type "llsubmit script". To compile on other machines: ========================= Note: Contributed by Vince Wayland of NCAR "Makefile.ncar" is a Makefile that detects the machine architecture and compiles appropriately for NCAR IBM, SGI and Compaq. One difference from this Makefile to that for NERSC IBM is that it defines "CFOPTS=" instead of the $TMPDIR stuff, which is special for NERSC IBM since it uses GPFS file system, and needs work around for F90 modules. You may need to type "make" or "gmake" to compile depends on your machine. To run on other machines: ====================== Note: Contributed by Vince Wayland of NCAR 1) to run on NCAR IBM SP: same as on NERSC IBM SP. 2) to run on NCAR SGI interactively: % mpirun -p "[%g]" -np 6 pop : -np 2 ccm : -np 1 cpl > output.a It's pretty simple to build an NQE batch script around it; just hard to get it run through any of the queues here. The tasklist file is not needed (can't be used?) on the SGI. 3) to run on NCAR Compaq with batch script: You need two shell scripts, run.dec and runscript.dec. (Thanks to Dan Anderson & Bill Celmaster in NCAR). As on the SGI O2K script, a concern is to get all of the processes into execution at the same time. run.dec: #! /bin/csh prun -n8 -t runscript.dec runscript.dec: #! /bin/csh #RMS_NODEID __ the node ID of the node this process is running on #RMS_NPROCS __ total number of prun processes spawned #RMS_RANK __ which prun process of the RMS_NPROCS processes echo "node= " $RMS_NODEID " Process number= " $RMS_RANK " of " $RMS_NPROCS if ($RMS_RANK >= 0 && $RMS_RANK <= 4) pop & # 5 procs for pop if ($RMS_RANK >= 5 && $RMS_RANK <= 6) ccm & # 2 procs for ocn if ($RMS_RANK == 7) cpl & # 1 proc for cpl exit Last modified on January 10, 2001.