HYDRA_development_version
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
jobScript.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  pathoutputlog=$par2
70  jobarrayFile=$par1
71 
72  # map back params for the job
73  input=$(awk "NR==$SGE_TASK_ID" $jobarrayFile) # get all params for this job
74 
75 
76  par1=$(echo $input | cut -d " " -f1)
77  par2=$(echo $input | cut -d " " -f2)
78  par3=$(echo $input | cut -d " " -f3)
79  par4=$(echo $input | cut -d " " -f4)
80  par5=$(echo $input | cut -d " " -f5)
81  par6=$(echo $input | cut -d " " -f6)
82  par7=$(echo $input | cut -d " " -f7)
83 
84  echo ""
85  echo "--------------------------------"
86  echo "input: $input"
87  echo "par1 = ${par1}"
88  echo "par2 = ${par2}"
89  echo "par3 = ${par3}"
90  echo "par4 = ${par4}"
91  echo "par5 = ${par5}"
92  echo "par6 = ${par6}"
93  echo "par7 = ${par7}"
94  echo "--------------------------------"
95  echo ""
96 
97 
98  format='+%Y/%m/%d-%H:%M:%S'
99 
100  date $format
101  echo ""
102  echo "--------------------------------"
103  echo "RUNNING ON HOST : " $(hostname)
104  echo "WORKING DIR : " $(pwd)
105  echo "USER is : " $USER
106  echo "JOBID : $JOB_ID"
107  echo "DISK USAGE /tmp :"
108  df -h /tmp
109  echo "--------------------------------"
110 
111 
112  echo ""
113  echo "--------------------------------"
114  echo " DEBUG INFO"
115  echo "==> Kernel version information :"
116  uname -a
117  echo "==> C compiler that built the kernel:"
118  cat /proc/version
119  echo "==> load on this node:"
120  mpstat -P ALL
121  echo "==> actual compiler is"
122  gcc -v
123  echo "--------------------------------"
124  echo ""
125 
126 
127 
128 
129 
130 
131 
132 
133 ###################################################################
134 ###################################################################
135 # EDIT THIS PART TO EXECUTE YOUR JOB!
136 
137 
138  urqmd=$par1
139  converter=$par2
140  filename=$par3
141  outdir=$par4
142  nevents=$par5
143  seed=$par6
144  input=$par7
145 
146 
147  olddir=$(pwd)
148 
149 
150 
151  echo "==> ldd ${urqmd}"
152  ldd ${urqmd}
153  echo " ==> ldd ${converter}"
154  ldd ${converter}
155 
156 
157  if [ ! -d ${outdir}/evt ]
158  then
159  mkdir -p ${outdir}/evt
160  fi
161 
162  cd ${outdir}
163 
164  #######################################
165  # because of the random seed we need to
166  # clone the input
167  config=$(basename ${input})
168  cfg=${config}_${seed}
169 
170  cat ${input} | sed 's/^xxx/#/' > $cfg
171  echo rsd $seed >> $cfg
172  echo xxx >> $cfg
173  #######################################
174 
175  export ftn09=${cfg}
176  export ftn14=${filename}
177 
178  echo "==> execute program "
179 
180 
181  echo "==> RUNNING URQMD:"
182  time ${urqmd}
183 
184  if [ $? -ne 0 ]
185  then
186  echo "ERROR: urqmd did not succeed!"
187  fi
188 
189  if [ -f $cfg ]
190  then
191  rm -f $cfg
192  fi
193 
194  echo "RUNNING CONVERT:"
195  echo "$convert $filename $events"
196  ls -ltrh ${filename}
197 
198  if [ -f ${filename} ]
199  then
200  infile=$(basename ${filename})
201  time ${converter} ${infile} ${nevents}
202  mv ${filename} ${filename}.f14
203  else
204  echo "ERROR: file = ${infile} not found!"
205  fi
206 
207  if [ -f ${filename}.evt ]
208  then
209  mv ${filename}.evt evt/
210  rm ${filename}.f14
211  else
212  echo "ERROR: file = ${filename}.evt not found!"
213  fi
214 
215 
216  cd -
217  ls -ltrh ${outdir}/evt/${filename}.evt
218 
219  cd ${olddir}
220 
221 # END EDIT YOUR EXECUT JOB!
222 ###################################################################
223 ###################################################################
224 
225 
226 
227 
228 
229 
230 
231  echo ""
232  echo "--------------------------------"
233  echo "Job with params "
234  echo "par1 = ${par1}"
235  echo "par2 = ${par2}"
236  echo "par3 = ${par3}"
237  echo "par4 = ${par4}"
238  echo "par5 = ${par5}"
239  echo "par6 = ${par6}"
240  echo "par7 = ${par7}"
241  echo "finsished!"
242  echo "--------------------------------"
243  echo ""
244 
245  host=$(hostname)
246 
247  echo ""
248  echo "--------------------------------"
249  echo "MONITOR ENVIRONMENT:"
250  echo "JOB EXE :---------------------"
251  qstat -j $JOB_ID
252  #echo "HOST LOAD :---------------------"
253  #qhost -h $host
254  #echo "OTHER JOBS ON HOST:-------------"
255  #qhost -h $host -j
256  echo "DISK USAGE /tmp :---------------"
257  df -h /tmp
258  #echo "MEM/CPU USAGE :-----------------"
259  #qstat -j $JOB_ID | grep usage
260  echo "--------------------------------"
261 
262 
263 
264 
265  date $format
266 
267 
268  sleep 2
269 
270  infile=$(basename $par3)
271 
272 
273  mv ${pathoutputlog}/${JOB_NAME}.o${JOB_ID}.${SGE_TASK_ID} ${pathoutputlog}/${infile}.log
274