Skip to content

Instantly share code, notes, and snippets.

@hiraksarkar
Last active November 8, 2018 19:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hiraksarkar/8185a2cf732844da90048224eed6f3c9 to your computer and use it in GitHub Desktop.
Save hiraksarkar/8185a2cf732844da90048224eed6f3c9 to your computer and use it in GitHub Desktop.
#!/bin/bash
####################################
USAGE: bash auto_sub.sh <QUEUE_LIM> <MAX_JOB_NUM>
###################################
USER="$(whoami)"
MAX_LIMIT=$1
MAX_JOB_NUM=$2
#number of things queue
#CHEKC IF it less than try submeating jobs
while : ; do
NUM_QUEUED=`qstat -u $USER | awk '$10 == "Q" { count++ } END {print count }'`
if [ $NUM_QUEUED -lt $MAX_LIMIT ]; then
let "TO_SUB = $MAX_LIMIT - $NUM_QUEUED"
MAX_SUB=`qstat -u moamin | awk '$10 == "Q" { print $4 }' | cut -d"_" -f3 | sort -n | tail -1`
#echo "$MAX_SUB $TO_SUB";
MAX_SUB=$(echo $MAX_SUB | sed 's/^0*//')
let "MIN_SUB = $MAX_SUB + 1"
let "MAX_SUB = $MAX_SUB + $TO_SUB"
echo "$MIN_SUB $MAX_SUB ";
if [[ ${#MIN_SUB} -lt 3 ]];
then
MIN_SUB="0${MIN_SUB}"
fi
if [[ ${#MAX_SUB} -lt 3 ]];
then
MAX_SUB="0${MAX_SUB}"
fi
for i in `seq -w $MIN_SUB $MAX_SUB` ;
#do echo "$MIN_SUB $MAX_SUB ";
do qsub experiment/JOB_seq_${i}.pbs;
done
if [ $MAX_SUB -eq $MAX_JOB_NUM ]; then
break
fi
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment