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 here or access the individual files as follows:
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.
Back to NERSC ACPI Homepage