#!/bin/sh
#PBS -S /bin/sh
#PBS -l @@{ATTRIBUTES}
#PBS -l walltime=@@{WALLTIME}
#PBS -N JOB_@@{JOBID}_@@{INSTANCEID}
#PBS -o pbs_@@{RUNNAME}_@@{INSTANCEID}.stdout
#PBS -e pbs_@@{RUNNAME}_@@{INSTANCEID}.stderr
#PBS -mn
@@{REMOTEBATCHACCOUNT}
@@{QUEUE}
@@{SUBMISSIONSCRIPTCOMMANDS}

export MCR_INHIBIT_CTF_LOCK=1
@@{ENVIRONMENT}

# RemoteBatchPBS:makeMatlabMPITemplate
# SubmissionScripts/Distributor/Batch/PBS/matlabmpi

trap cleanup HUP INT QUIT ABRT TERM

cleanup()
{
   echo "Abnormal termination by signal"
   for p in $(ls -r MatMPI/pid.master.*) ; do
      pid=${p:18}
      kill -s TERM $pid
   done
   if [ ! -s @@{TS_FINISH} ] ; then
      date +"%s" > @@{TS_FINISH}
   fi
   exit 1
}

export PATH=${PBS_O_WORKDIR}:${PBS_O_PATH}
# Change to directory where job was submitted.
cd ${PBS_O_WORKDIR}

TIMEPATH=
for timePath in /bin/time /usr/bin/time /usr/local/bin/time ; do
   if [ -x ${timePath} ] ; then
      TIMEPATH=${timePath}
      break
   fi
done

export TIMERCOMMAND="${TIMEPATH} --format \"Command exited with status %x\nreal %e\nuser %U\nsys %S\" -a -o @@{TIME_RESULTS}"

@@{QUOTA}

date +"%s" > @@{TS_START}

@@{PREMANAGERCOMMANDS}
@@{MANAGERCOMMAND} @@{EXECUTABLE} @@{ARGUMENTS}
@@{POSTMANAGERCOMMANDS}

date +"%s" > @@{TS_FINISH}
