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