-
Notifications
You must be signed in to change notification settings - Fork 47
/
hopping_test_qscript
executable file
·102 lines (85 loc) · 3.13 KB
/
hopping_test_qscript
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/bin/zsh
#
#$ -N test
#$ -l h_cpu=02:30:00
#$ -l h_vmem=800M
###$ -m bea scorzato@ect.it
#$ -e errfile
#$ -o outfile
#$ -pe mpi 8
#######
# This script should be run after hopping_test_generate_script (see explamations there)
# see hopping_test.README for a general overview
# see below for the explanation of the parameters
######## parameters to set:
suff=XYZtsp # suffix for the program name and also suffix of the directory name
# res_$suff containing the results
nxmax=100 # 1 if x direction is not parallelized, 100 otherwise
nymax=100 # 1 if y direction is not parallelized, 100 otherwise
nzmax=100 # 1 if z direction is not parallelized, 100 otherwise
ntmax=1 # 1 if t direction is not parallelized, 100 otherwise
###################
joke=0
ini openmpi
program=hopping_test_${suff}
procs=$NSLOTS
cd /afs/ifh.de/group/nic/scratch/pool1/scorzato/hmc-test
mkdir -p res_${suff}
echo "nprocs: $procs, running: $program" > list
for ll in 4 6 8 10 12 14 16 ; do
for tt in 4 5 6 7 8 9 10 16 20 24 ; do
#ll=4
#tt=5
for nx in `seq $(( $ll - 1 ))` ; do
if [ $nx -le $nxmax ] ; then
lx=$(($ll / $nx))
if [ $(($nx * $lx)) -eq $ll ] ; then
for ny in `seq $(( $ll - 1 ))` ; do
if [ $ny -le $nymax ] ; then
ly=$(($ll / $ny))
if [ $(($ny * $ly)) -eq $ll ] ; then
for nz in `seq $(( $ll - 1 ))` ; do
if [ $nz -le $nzmax ] ; then
lz=$(($ll / $nz))
if [ $(($nz * $lz)) -eq $ll ] ; then
for nt in `seq $(( $tt - 1 ))` ; do
if [ $nt -le $ntmax ] ; then
lt=$(($tt / $nt))
if [ $(($nt * $lt)) -eq $tt ] ; then
if [ $(( $nx * $ny * $nz * $nt )) -eq $procs ] ; then
if [ $((2 * $(($lz / 2)))) -eq $lz ] ; then
svol=$(( $lx * $ly * $lt ))
if [ $((2 * $(($svol / 2)))) -eq $svol ] ; then
echo "$ll - $tt : $nx - $ny - $nz - $nt : $procs" >> list
if [ $joke -eq 0 ] ; then
rm -f spincolorfield spincolorfield.2 spincolorfield.out gaugeconf
cp confs/spincolorfield.in.L${ll}T${tt} spincolorfield
cp confs/gaugeconf.L${ll}T${tt} gaugeconf
sed s/TT/${tt}/g hopping_test.input.new | sed s/LL/${ll}/g | sed s/NX/${nx}/g | sed s/NY/${ny}/g | sed s/NZ/${nz}/g > hopping_test.input
if [ $procs -eq 1 ] ; then
./$program &> res_${suff}/out_L${ll}T${tt}_nx${nx}ny${ny}nz${nz}nt${nt}_P${procs}
else
mpirun --mca btl "^udapl" -np $NSLOTS $program &> res_${suff}/out_L${ll}T${tt}_nx${nx}ny${ny}nz${nz}nt${nt}_P${procs}
fi
mv spincolorfield.out spincolorfield.2
cp confs/spincolorfield.out.L${ll}T${tt} spincolorfield
sed s/TT/${tt}/g hopping_test.input.compare | sed s/LL/${ll}/g | sed s/NX/${nx}/g | sed s/NY/${ny}/g | sed s/NZ/${nz}/g > hopping_test.input
./hopping_test_refv &> res_${suff}/diff_L${ll}T${tt}_nx${nx}ny${ny}nz${nz}nt${nt}_P${procs}
fi
fi
fi
fi
fi
fi
done
fi
fi
done
fi
fi
done
fi
fi
done
done
done