tparamspawn.sh - pism - [fork] customized build of PISM, the parallel ice sheet model (tillflux branch)
(HTM) git clone git://src.adamsgaard.dk/pism
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
tparamspawn.sh (3314B)
---
1 #!/bin/bash
2
3 # Copyright (C) 2009-2013 Ed Bueler and Andy Aschwanden
4
5 # creates 18 scripts, each with NN processors, for a parameter study
6 # scripts are suitable for PBS job scheduler
7 # (see http://www.adaptivecomputing.com/products/open-source/torque/)
8 #
9 # usage: to use NN=8 processors, 2 4-core nodes, and duration 4:00:00,
10 # $ export PISM_WALLTIME=4:00:00
11 # $ export PISM_NODES=2
12 # $ ./paramspawn.sh 8
13 # then, assuming you like the resulting scripts:
14 # $ ./paramsubmit.sh ### <--- REALLY SUBMITS using qsub
15
16
17 set -e # exit on error
18 SCRIPTNAME=paramspawn.sh
19
20 NN=8 # default number of processors
21 if [ $# -gt 0 ] ; then # if user says "paramspawn.sh 8" then NN = 8
22 NN="$1"
23 fi
24
25 # set wallclock time
26 if [ -n "${PISM_WALLTIME:+1}" ] ; then # check if env var is already set
27 echo "$SCRIPTNAME PISM_WALLTIME = $PISM_WALLTIME (already set)"
28 else
29 PISM_WALLTIME=4:00:00
30 echo "$SCRIPTNAME PISM_WALLTIME = $PISM_WALLTIME"
31 fi
32 WALLTIME=$PISM_WALLTIME
33
34 # set number of nodes
35 if [ -n "${PISM_NODES:+1}" ] ; then # check if env var is already set
36 echo "$SCRIPTNAME PISM_NODES = $PISM_NODES (already set)"
37 else
38 PISM_NODES=2
39 echo "$SCRIPTNAME PISM_NODES = $PISM_NODES"
40 fi
41 NODES=$PISM_NODES
42
43 SHEBANGLINE="#!/bin/bash"
44 MPIQUEUELINE="#PBS -q standard_4"
45 MPITIMELINE="#PBS -l walltime=$WALLTIME"
46 MPISIZELINE="#PBS -l nodes=$NODES:ppn=4"
47 MPIOUTLINE="#PBS -j oe"
48
49 GRID=20
50 DURA=10000
51 for PPQ in 0.1 0.25 0.8 ; do
52 for TEFO in 0.01 0.02 0.05 ; do
53
54 SCRIPT="do_ppq_${PPQ}_tefo_${TEFO}_sgl_true.sh"
55 rm -f $SCRIPT
56 EXPERIMENT=ppq_${PPQ}_tefo_${TEFO}_sgl_true
57 OUTFILE=g${GRID}km_${PPQ}_${TEFO}.nc
58
59 # insert preamble
60 echo $SHEBANGLINE >> $SCRIPT
61 echo >> $SCRIPT # add newline
62 echo $MPIQUEUELINE >> $SCRIPT
63 echo $MPITIMELINE >> $SCRIPT
64 echo $MPISIZELINE >> $SCRIPT
65 echo $MPIOUTLINE >> $SCRIPT
66 echo >> $SCRIPT # add newline
67 echo "cd \$PBS_O_WORKDIR" >> $SCRIPT
68 echo >> $SCRIPT # add newline
69
70 export PISM_EXPERIMENT=$EXPERIMENT
71 export PISM_TITLE="Greenland Parameter Study"
72
73 cmd="PISM_DO="" PARAM_PPQ=$PPQ PARAM_TEFO=$TEFO ./spinup.sh $NN const $DURA $GRID hybrid $OUTFILE"
74 echo "$cmd 2>&1 | tee job.\${PBS_JOBID}" >> $SCRIPT
75
76 echo "($SPAWNSCRIPT) $SCRIPT written"
77
78 SCRIPT="do_ppq_${PPQ}_tefo_${TEFO}_sgl_false.sh"
79 rm -f $SCRIPT
80 EXPERIMENT=ppq_${PPQ}_tefo_${TEFO}_sgl_false
81 OUTFILE=g${GRID}km_${PPQ}_${TEFO}_NOSGL.nc
82
83 # insert preamble
84 echo $SHEBANGLINE >> $SCRIPT
85 echo >> $SCRIPT # add newline
86 echo $MPIQUEUELINE >> $SCRIPT
87 echo $MPITIMELINE >> $SCRIPT
88 echo $MPISIZELINE >> $SCRIPT
89 echo $MPIOUTLINE >> $SCRIPT
90 echo >> $SCRIPT # add newline
91 echo "cd \$PBS_O_WORKDIR" >> $SCRIPT
92 echo >> $SCRIPT # add newline
93
94 export PISM_EXPERIMENT=$EXPERIMENT
95 export PISM_TITLE="Greenland Parameter Study"
96
97 cmd="PISM_DO="" PARAM_PPQ=$PPQ PARAM_TEFO=$TEFO PARAM_NOSGL=foo ./spinup.sh $NN const $DURA $GRID hybrid $OUTFILE"
98 echo "$cmd 2>&1 | tee job.\${PBS_JOBID}" >> $SCRIPT
99
100 echo "($SPAWNSCRIPT) $SCRIPT written"
101
102 done
103 done
104
105
106 echo
107 echo "($SPAWNSCRIPT) use paramsubmit.sh to submit the scripts"
108 echo
109