-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsubmit.sh
executable file
·79 lines (74 loc) · 1.63 KB
/
submit.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/bin/bash
# submit jobs
cluster=$1
case "$cluster" in
roger)
demdir="$HOME/scratch/taudem/data"
mpibin="mpirun"
nplists=("160 80 40 20" "500 400 300 200 100 60 40")
scheduler=pbs
taudem1=/sw/geosoft/TauDEM/bin
taudem2=/gpfs/largeblockFS/scratch/taudem/TauDEM-5.3.1
ppn=20
wtime="48:00:00"
rdir=/gpfs/largeblockFS/scratch/gisolve/taudem/test
;;
stampede)
demdir="$WORK/taudem53test/data"
mpibin="ibrun"
nplists=("256 128 64 32 16" "1024 512 256 128 64")
scheduler=slurm
taudem1=$WORK/TauDEM/build/bin
taudem2=$WORK/TauDEM-5.3.1
ppn=16
wtime="48:00:00"
rdir=$WORK/taudem53test/test
;;
*)
echo "Usage: $0 roger|stampede"
exit 1
esac
dlist=("Yellowstone/YellowMF" "Chesapeake/ches10mMF")
thlist=("2000" "8000")
if [ ! -d $rdir ]; then
mkdir -p $rdir
fi
for testcase in 0 1
do
nplist=${nplists[$testcase]}
d=${dlist[$testcase]}
dem1=$demdir/$d
d2=`echo "$d" | awk -F\/ '{print $1}'`
dem2=$demdir/$d2.vrt
for np in $nplist
do
###############
jfile="$cluster.$np.$d2.$scheduler"
echo "creating $jfile ..."
n=`expr $np \/ $ppn`
j="$np.$d2"
wdir=$rdir/$j
#[ -d $wdir ] && rm -fr $wdir/*
[ ! -d $wdir ] && mkdir -p $wdir
jout=$wdir/$j.out
jerr=$wdir/$j.err
# job sub header
sed -e "s|__NAME__|$j|" \
-e "s|__STDERR__|$jerr|" \
-e "s|__STDOUT__|$jout|" \
-e "s|__N__|$np|" \
-e "s|__NN__|$n|" \
-e "s|__PPN__|$ppn|" \
-e "s|__T__|$wtime|" \
_$scheduler.template > $jfile
# work dir
echo "cd $wdir" >> $jfile
# exec
if [ "$mpibin" == "mpirun" ]; then
mpiclause="$mpibin -np $np "
fi
th=${thlist[$testcase]}
echo "`pwd`/taudemrun.sh $d2 \"$mpiclause\" $taudem1 $dem1 $taudem2 $dem2 $th" >> $jfile
###############
done
done