HYDRA_development_version
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
jobScript_SL.sh
Go to the documentation of this file.
1 #!/bin/bash
2 
3 # This is the generic jobscript to run jobs on GridEngine
4 #
5 # The script supports up to 7 parameters.
6 #
7 # The user specific part of the script is indicated below.
8 
9 
10 
11 par1="no"
12 par2="no"
13 par3="no"
14 par4="no"
15 par5="no"
16 par6="no"
17 par7="no"
18 
19 if [ $# -lt 1 ]
20 then
21  echo "Usage : jobScript.sh par1 [par2] [par2] [par3] [par4] [par5] [par6] [par7]"
22  sleep 3
23  exit
24 fi
25 
26 case "$#" in
27 
28 1) par1=$1
29  ;;
30 2) par1=$1
31  par2=$2
32  ;;
33 3) par1=$1
34  par2=$2
35  par3=$3
36  ;;
37 4) par1=$1
38  par2=$2
39  par3=$3
40  par4=$4
41  ;;
42 5) par1=$1
43  par2=$2
44  par3=$3
45  par4=$4
46  par5=$5
47  ;;
48 6) par1=$1
49  par2=$2
50  par3=$3
51  par4=$4
52  par5=$5
53  par6=$6
54  ;;
55 7) par1=$1
56  par2=$2
57  par3=$3
58  par4=$4
59  par5=$5
60  par6=$6
61  par7=$7
62  ;;
63 *) echo "Unsupported number of arguments"
64  echo "Usage : jobScript.sh par1 [par2] [par2] [par3] [par4] [par5] [par6] [par7]"
65  exit
66  ;;
67 esac
68 
69  echo ""
70  echo "--------------------------------"
71  echo "SLURM_JOBID : " $SLURM_JOBID
72  echo "SLURM_ARRAY_JOB_ID : " $SLURM_ARRAY_JOB_ID
73  echo "SLURM_ARRAY_TASK_ID: " $SLURM_ARRAY_TASK_ID
74  echo "--------------------------------"
75  echo ""
76 
77 
78  arrayoffset=$par3
79  pathoutputlog=$par2
80  jobarrayFile=$par1
81 
82  ((myline=${SLURM_ARRAY_TASK_ID}+${arrayoffset}))
83  # map back params for the job
84  input=$(awk "NR==${myline}" $jobarrayFile) # get all params for this job
85 
86 
87  par1=$(echo $input | cut -d " " -f1)
88  par2=$(echo $input | cut -d " " -f2)
89  par3=$(echo $input | cut -d " " -f3)
90  par4=$(echo $input | cut -d " " -f4)
91  par5=$(echo $input | cut -d " " -f5)
92  par6=$(echo $input | cut -d " " -f6)
93  par7=$(echo $input | cut -d " " -f7)
94 
95  echo "input: $input"
96  echo "par1 = ${par1}"
97  echo "par2 = ${par2}"
98  echo "par3 = ${par3}"
99  echo "par4 = ${par4}"
100  echo "par5 = ${par5}"
101  echo "par6 = ${par6}"
102  echo "par7 = ${par7}"
103 
104 
105  format='+%Y/%m/%d-%H:%M:%S'
106 
107  host=$(hostname)
108 
109  date $format
110  echo ""
111  echo "--------------------------------"
112  echo "RUNNING ON HOST : " $host
113  echo "WORKING DIR : " $(pwd)
114  echo "USER is : " $USER
115  echo "DISK USAGE /tmp :"
116  df -h /tmp
117  echo "--------------------------------"
118 
119 
120  echo ""
121  echo "--------------------------------"
122  echo "par1 = ${par1}"
123  echo "par2 = ${par2}"
124  echo "par3 = ${par3}"
125  echo "par4 = ${par4}"
126  echo "par5 = ${par5}"
127  echo "par6 = ${par6}"
128  echo "par7 = ${par7}"
129  echo "--------------------------------"
130  echo ""
131 
132 
133 
134  echo ""
135  echo "--------------------------------"
136  echo " DEBUG INFO"
137  echo "==> Kernel version information :"
138  uname -a
139  echo "==> C compiler that built the kernel:"
140  cat /proc/version
141  echo "==> load on this node:"
142  mpstat -P ALL
143  echo "==> actual compiler is"
144  gcc -v
145  echo "--------------------------------"
146  echo ""
147 
148 
149 
150 
151 
152 
153 
154 
155 ###################################################################
156 ###################################################################
157 # EDIT THIS PART TO EXECUTE YOUR JOB!
158 
159 
160 
161 #----------------------
162 # evironment
163  echo "==> running enironment script ${par1}"
164 . ${par1}
165 #----------------------
166 
167  echo "==> ldd ${par2}"
168  ldd $par2
169 
170  echo "==> execute program "
171 
172  outdir=$par4
173 
174  files=$(echo $par3 | sed 's/,/ /g')
175  for file in $files
176  do
177  file=$(echo $file | sed 's/#/,/g')
178  echo "==> $par2 $file $outdir $par5"
179  time $par2 $file $outdir $par5
180 
181  status=$?
182 
183 
184  echo "------------------------------------"
185  echo "MOVING OUTPUTFILES:"
186 
187  isList=$(echo $file | grep ",")
188 
189  if [ "${isList}" == "" ]
190  then
191  filename=$(basename ${file} | sed 's/.root$//')
192  mv -v ${outdir}/${filename}_dst_apr12.root ${outdir}/root/
193  else
194 
195  for f in $(echo $file | sed 's/,/ /g')
196  do
197  filename=$(basename ${f} | sed 's/.root$//')
198  mv -v ${outdir}/${filename}_dst_apr12.root ${outdir}/root/
199  done
200  fi
201  done
202 #---------------------------------------------------------------------
203 
204 
205 
206 # END EDIT YOUR EXECUT JOB!
207 ###################################################################
208 ###################################################################
209 
210 
211 
212 
213 
214 
215 
216  echo ""
217  echo "--------------------------------"
218  echo "Job with params "
219  echo "par1 = ${par1}"
220  echo "par2 = ${par2}"
221  echo "par3 = ${par3}"
222  echo "par4 = ${par4}"
223  echo "par5 = ${par5}"
224  echo "par6 = ${par6}"
225  echo "par7 = ${par7}"
226  echo "finsished!"
227  echo "--------------------------------"
228  echo ""
229 
230 
231  echo ""
232  echo "--------------------------------"
233  echo "MONITOR ENVIRONMENT:"
234  echo "SLURM_JOBID : " $SLURM_JOBID
235  echo "SLURM_ARRAY_JOB_ID : " $SLURM_ARRAY_JOB_ID
236  echo "SLURM_ARRAY_TASK_ID: " $SLURM_ARRAY_TASK_ID
237  echo "RUNNING ON HOST : " $(hostname)
238  echo "WORKING DIR : " $(pwd)
239  echo "USER is : " $USER
240  echo "DISK USAGE /tmp :------------"
241  df -h /tmp
242  echo "--------------------------------"
243 
244  date $format
245 
246 
247  sleep 2
248 
249  # when running single file move log file name
250  # to output filename
251  if [ "$par3" == "$files" ]
252  then
253  echo "MOVING LOG FILE"
254  outfile=$(basename $par3)
255  mv ${pathoutputlog}/slurm-${SLURM_ARRAY_JOB_ID}_${SLURM_ARRAY_TASK_ID}.out ${pathoutputlog}/${outfile}.log
256  fi
257 
258 
259