Commit 101ef7d4 authored by Mayer, Benjamin W's avatar Mayer, Benjamin W
Browse files

fully dynamic parameters

parent 824e9909
[acme]
# This is the name of the case
casename = F1850.g37.6mos
casename = F1850C5.ne30.6mos
# This is the number of cores to use for each stage
mppwidth = 24
mppwidth = 144
# This is the unit of simulation time
stop_option = ndays
# This is the number of simulation time units to run for each stage
stop_n = 60, 60, 60
#stop_n = 60, 60, 60
stop_n = 60
# This is the walltime for each stage in minutes
walltime = 60, 60, 60
walltime = 60
#walltime = 60, 60, 60
......@@ -3,11 +3,12 @@ ACME-Workflow
Pegasus workflow for ACME climate models.
Consult the [CESM User's Guide](http://www.cesm.ucar.edu/models/cesm1.2/cesm/doc/usersguide/book1.html)
Consult the [CESM User''s Guide](http://www.cesm.ucar.edu/models/cesm1.2/cesm/doc/usersguide/book1.html)
for more information about the climate code used by this workflow.
Steps to Run the Workflow
-------------------------
0. On Workflow1.ccs.ornl.gov run 'module load pegasus'
1. Create/edit the configuration file (e.g. test.cfg)
......@@ -23,6 +24,7 @@ Steps to Run the Workflow
a. Set the create_newcase parameters
3. Generate the DAX
On workflow1.ccs.ornl.gov use the python in:
$ python daxgen.py test.cfg mysetup.sh DIRNAME
......
......@@ -40,7 +40,7 @@ class ACMEWorkflow(object):
self.mppwidth = config.get("acme", "mppwidth")
self.stop_option = config.get("acme", "stop_option")
self.stop_n = [x.strip() for x in config.get("acme", "stop_n").split(",")]
self.walltime = [x.strip() for x in config.get("acme", "walltime").split(",")
self.walltime = [x.strip() for x in config.get("acme", "walltime").split(",")]
self.res = config.get("acme", "res")
self.compiler = config.get("acme", "compiler")
......@@ -55,12 +55,12 @@ class ACMEWorkflow(object):
path = os.path.join(self.outdir, "env.sh")
f = open(path, "w")
try:
f.write("CASENAME=%s" % self.casename)
f.write("MACH=%s" % self.mach)
f.write("RES=%s" % self.res)
f.write("COMPILER=%s" % self.compiler)
f.write("PROJECT=%s" % self.project)
f.write("COMPSET=%s" % self.compset)
f.write("CASENAME=%s\n" % self.casename)
f.write("MACH=%s\n" % self.mach)
f.write("RES=%s\n" % self.res)
f.write("COMPILER=%s\n" % self.compiler)
f.write("PROJECT=%s\n" % self.project)
f.write("COMPSET=%s\n" % self.compset)
finally:
f.close()
......@@ -92,7 +92,13 @@ tr acme-setup {
os "LINUX"
type "STAGEABLE"
profile pegasus "exitcode.successmsg" ".... successfully built model executable"
profile pegasus "exitcode.failuremsg" "OPTIONS"
profile pegasus "nodes" "1"
profile env "MACH" "%s"
profile env "COMPSET" "%s"
profile env "RES" "%s"
profile env "PROJECT" "%s"
profile env "COMPILER" "%s"
profile globus "jobtype" "single"
profile globus "maxwalltime" "120"
profile hints "grid.jobtype" "auxillary"
......@@ -137,7 +143,7 @@ tr acme-amwg {
profile pegasus "exitcode.failuremsg" "Segmentation fault"
}
}
""" % (DAXGEN_DIR, DAXGEN_DIR, self.mppwidth, DAXGEN_DIR, DAXGEN_DIR))
""" % (DAXGEN_DIR, self.mach, self.compset, self.res, self.project, self.compiler, DAXGEN_DIR, self.mppwidth, DAXGEN_DIR, DAXGEN_DIR))
finally:
f.close()
......@@ -187,7 +193,7 @@ tr acme-amwg {
dax.depends(stage, setup)
else:
stage.addArguments("-continue")
#dax.depends(stage, prevstage)
dax.depends(stage, prevstage)
if last is not None:
dax.depends(stage, last)
......
......@@ -10,6 +10,15 @@
#
set -e
echo "ACMEROOT " $ACMEROOT
echo 'CASEROOT ' $CASEROOT
echo "MACH " $MACH
echo "COMPSET " $COMPSET
echo "RES " $RES
echo "PROJECT " $PROJECT
echo "COMPILER " $COMPILER
echo "AENV " $AENV
$ACMEROOT/cime/scripts/create_newcase -case $CASEROOT -mach $MACH -compset $COMPSET -res $RES -project $PROJECT -compiler $COMPILER
cd $CASEROOT
......
#!/bin/bash
SITE=hopper
OUTPUT_SITE=hopper
SITE=local-pbs-titan
OUTPUT_SITE=local-pbs-titan
if [ $# -ne 1 ]; then
echo "Usage: $0 WORKFLOW_DIR"
......
......@@ -53,7 +53,7 @@
<profile namespace="condor" key="grid_resource">pbs</profile>
<profile namespace="globus" key="queue">titan</profile>
<profile namespace="pegasus" key="nodes">1</profile>
<profile namespace="pegasus" key="nodes">0</profile>
<profile namespace="globus" key="maxwalltime">10</profile>
<profile namespace="pegasus" key="glite.arguments">-A CLI115</profile>
<profile namespace="pegasus" key="ppn">16</profile>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment