#!/bin/bash # This is the generic jobscript to run jobs on GridEngine # # The script supports up to 7 parameters. # # The user specific part of the script is indicated below. par1="no" # LitEnv.sh par2="no" # XXXX file number par3="no" # MAINDIRROOT par4="no" # LIT_NEVENTS par5="no" # macro to submit par6="no" # energy par7="no" # pluto reaction number par8="no" # MVD geometry par9="no" # field map scale factor par10="no" # field cutoff par11="no" # path to logfile par12="no" # log filename par13="no" # interaction rate par14="" # mvd tracking dir if [ $# -lt 1 ] then echo "Usage : jobScript.sh par1 [par2] [par2] [par3] [par4] [par5] [par6] [par7] [par8] [par9] [par10] [par11] [par12]" sleep 3 exit fi case "$#" in 1) par1=$1 ;; 2) par1=$1 par2=$2 ;; 3) par1=$1 par2=$2 par3=$3 ;; 4) par1=$1 par2=$2 par3=$3 par4=$4 ;; 5) par1=$1 par2=$2 par3=$3 par4=$4 par5=$5 ;; 6) par1=$1 par2=$2 par3=$3 par4=$4 par5=$5 par6=$6 ;; 7) par1=$1 par2=$2 par3=$3 par4=$4 par5=$5 par6=$6 par7=$7 ;; 8) par1=$1 par2=$2 par3=$3 par4=$4 par5=$5 par6=$6 par7=$7 par8=$8 ;; 9) par1=$1 par2=$2 par3=$3 par4=$4 par5=$5 par6=$6 par7=$7 par8=$8 par9=$9 ;; 10) par1=$1 par2=$2 par3=$3 par4=$4 par5=$5 par6=$6 par7=$7 par8=$8 par9=$9 par10=${10} ;; 11) par1=$1 par2=$2 par3=$3 par4=$4 par5=$5 par6=$6 par7=$7 par8=$8 par9=$9 par10=${10} par11=${11} ;; 12) par1=$1 par2=$2 par3=$3 par4=$4 par5=$5 par6=$6 par7=$7 par8=$8 par9=$9 par10=${10} par11=${11} par12=${12} ;; 13) par1=$1 par2=$2 par3=$3 par4=$4 par5=$5 par6=$6 par7=$7 par8=$8 par9=$9 par10=${10} par11=${11} par12=${12} par13=${13} ;; 14) par1=$1 par2=$2 par3=$3 par4=$4 par5=$5 par6=$6 par7=$7 par8=$8 par9=$9 par10=${10} par11=${11} par12=${12} par13=${13} par14=${14} ;; *) echo "Unsupported number of arguments" echo "Usage : jobScript.sh par1 [par2] [par2] [par3] [par4] [par5] [par6] [par7] [par8] [par9] [par10] [par11] [par12] [par13] [par14]" exit ;; esac format='+%Y/%m/%d-%H:%M:%S' date $format echo "" echo "--------------------------------" echo "RUNNING ON HOST : " $(hostname) echo "WORKING DIR : " $(pwd) echo "USER is : " $USER echo "JOBID : $JOB_ID" echo "DISK USAGE /tmp :" df -h /tmp echo "--------------------------------" echo "" echo "--------------------------------" echo "par1 = ${par1}" echo "par2 = ${par2}" echo "par3 = ${par3}" echo "par4 = ${par4}" echo "par5 = ${par5}" echo "par6 = ${par6}" echo "par7 = ${par7}" echo "par8 = ${par8}" echo "par9 = ${par9}" echo "par10 = ${par10}" echo "par11 = ${par11}" echo "par12 = ${par12}" echo "par13 = ${par13}" echo "par14 = ${par14}" echo "--------------------------------" echo "" echo "" echo "--------------------------------" echo " DEBUG INFO" echo "==> Kernel version information :" uname -a echo "==> C compiler that built the kernel:" cat /proc/version echo "==> load on this node:" mpstat -P ALL echo "==> actual compiler is" gcc -v echo "--------------------------------" echo "" ################################################################### ################################################################### # EDIT THIS PART TO EXECUTE YOUR JOB! #---------------------- # evironment export LIT_NEVENTS=${par4} export MAINDIRROOT=${par3} # export XXXX=${par2} export XXXX=$(awk "NR==$SGE_TASK_ID" ${par2}) export LIT_ENERGY=${par6} export PLUTOREAC=${par7} export MVD=${par8} export FIELDSCALE=${par9} export LIT_DELTA=${par10} export LIT_INTERACTION_RATE=${par13} export RECO_DIR_ADD=${par14} echo "==> running enironment script ${par1}" . ${par1} if [[ ${par5} == *_sim.C ]] then if [ -f ${LIT_MC_FILE} ] then echo "Removing ${LIT_MC_FILE}" rm ${LIT_MC_FILE} fi fi if [[ ${par5} == *_reco.C ]] then if [ -f ${LIT_GLOBAL_RECO_FILE} ] then echo "Removing ${LIT_GLOBAL_RECO_FILE}" rm ${LIT_GLOBAL_RECO_FILE} fi if [ -f ${LIT_MATCH_FILE} ] then echo "Removing ${LIT_MATCH_FILE}" rm ${LIT_MATCH_FILE} fi fi if [[ ${par5} == *_analysis.C ]] then if [ -f ${LIT_MC_DIEL_ANALYSIS_FILE} ] then echo "Removing ${LIT_MC_DIEL_ANALYSIS_FILE}" rm ${LIT_MC_DIEL_ANALYSIS_FILE} fi if [ -f ${LIT_RECO_DIEL_ANALYSIS_FILE} ] then echo "Removing ${LIT_RECO_DIEL_ANALYSIS_FILE}" rm ${LIT_RECO_DIEL_ANALYSIS_FILE} fi if [ -f ${LIT_GAMMA_DIEL_ANALYSIS_FILE} ] then echo "Removing ${LIT_GAMMA_DIEL_ANALYSIS_FILE}" rm ${LIT_GAMMA_DIEL_ANALYSIS_FILE} fi fi if [[ ${par5} == *_analysis_mc.C ]] then if [ -f ${LIT_MC_DIEL_ANALYSIS_FILE} ] then echo "Removing ${LIT_MC_DIEL_ANALYSIS_FILE}" rm ${LIT_MC_DIEL_ANALYSIS_FILE} fi fi if [[ ${par5} == *_analysis_reco.C ]] then if [ -f ${LIT_RECO_DIEL_ANALYSIS_FILE} ] then echo "Removing ${LIT_RECO_DIEL_ANALYSIS_FILE}" rm ${LIT_RECO_DIEL_ANALYSIS_FILE} fi fi if [[ ${par5} == *_analysis_gamma.C ]] then if [ -f ${LIT_GAMMA_DIEL_ANALYSIS_FILE} ] then echo "Removing ${LIT_GAMMA_DIEL_ANALYSIS_FILE}" rm ${LIT_GAMMA_DIEL_ANALYSIS_FILE} fi fi echo "==> running env for check" env #---------------------- echo "==> execute program " echo "==> root -b -q -l $par5(${par4})" root -b -q -l "${par5}(${par4})" #--------------------------------------------------------------------- # END EDIT YOUR EXECUT JOB! ################################################################### ################################################################### echo "" echo "--------------------------------" echo "Job with params " echo "par1 = ${par1}" echo "par2 = ${par2}" echo "par3 = ${par3}" echo "par4 = ${par4}" echo "par5 = ${par5}" echo "par6 = ${par6}" echo "par7 = ${par7}" echo "par8 = ${par8}" echo "par9 = ${par9}" echo "par10 = ${par10}" echo "par11 = ${par11}" echo "par12 = ${par12}" echo "par13 = ${par13}" echo "par14 = ${par14}" echo "finsished!" echo "--------------------------------" echo "" host=$(hostname) echo "" echo "--------------------------------" echo "MONITOR ENVIRONMENT:" echo "JOB EXE :---------------------" qstat -j $JOB_ID echo "HOST LOAD :---------------------" qhost -h $host echo "OTHER JOBS ON HOST:-------------" qhost -h $host -j echo "DISK USAGE /tmp :---------------" df -h /tmp echo "MEM/CPU USAGE :-----------------" qstat -j $JOB_ID | grep usage echo "--------------------------------" date $format pathoutputlog=${par11} logfile=${par12} echo "MOVING LOG FILE" mv ${pathoutputlog}/${JOB_NAME}.o${JOB_ID}.${SGE_TASK_ID} ${pathoutputlog}/${logfile}_${XXXX}.log sleep 2