forked from ArturAkh/TauFW
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsubmit_SLURM.sh
executable file
·45 lines (41 loc) · 1.14 KB
/
submit_SLURM.sh
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
#! /bin/bash
####### Script to run on a SLURM batch system
####### partition/queue
#SBATCH --partition wn
####### the cpu time for this job
#SBATCH --time 05:30:00
####### the maximum memory usage of this job
#SBATCH --mem 5500M
####### Job Name
#SBATCH -J test
####### transfer environment variable from submission host
#SBATCH --export ALL
# START
START=`date +%s`
echo "Job start at `date`"
echo "Running job on machine `uname -a`, host $HOSTNAME"
function peval { echo ">>> $@"; eval "$@"; }
# PRINT
export JOBID=$SLURM_JOB_ID
export TASKID=$SLURM_ARRAY_TASK_ID
WORKDIR="/scratch/$USER/$JOBID.$TASKID"
JOBLIST=$1
echo "\$JOBID=$JOBID"
echo "\$TASKID=$TASKID"
echo "\$HOSTNAME=$HOSTNAME"
echo "\$JOBLIST=$JOBLIST"
echo "\$SBATCH_TIMELIMIT=$SBATCH_TIMELIMIT"
echo "\$WORKDIR=$WORKDIR"
echo "\$PWD=$PWD"
peval 'TASKCMD=$(cat $JOBLIST | sed "${TASKID}q;d")'
peval "mkdir -p $WORKDIR"
peval "cd $WORKDIR"
# MAIN FUNCTIONALITY
#eval $(scramv1 runtime -sh);
peval "$TASKCMD"
# FINISH
peval "rm -rf $WORKDIR"
echo
END=`date +%s`; RUNTIME=$((END-START))
echo "Job complete at `date`"
printf "Took %d minutes %d seconds" "$(( $RUNTIME / 60 ))" "$(( $RUNTIME % 60 ))"