2010-03-15 08:33:42 +03:00
|
|
|
#!/bin/sh
|
2009-08-07 05:15:09 +04:00
|
|
|
# The purpose of this shell script is to extract the ALPS resId for the
|
|
|
|
# current batch job (under which we are running). Ideally, we would not
|
|
|
|
# relegate such a function to a script; rather, we would extract this
|
|
|
|
# value directly from the ALPS "reservations" file. However, we do not
|
|
|
|
# know the file structure used for the "reservations" file and this
|
|
|
|
# structure is not locally available. Then, in addition, we have the
|
|
|
|
# complication that as of the instantiation date of this script, the
|
|
|
|
# user command interface to ALPS is somewhat unreliable. So, to keep
|
|
|
|
# the load module fairly simple, we use this script.
|
|
|
|
|
|
|
|
APSTAT=/usr/bin/apstat
|
|
|
|
GREP=/usr/bin/grep
|
|
|
|
AWK=/usr/bin/awk
|
2009-11-01 06:25:57 +03:00
|
|
|
SLEEP=/bin/sleep
|
2009-08-07 05:15:09 +04:00
|
|
|
ECHO=/bin/echo
|
|
|
|
|
|
|
|
# If the old variable still is being set, use it.
|
|
|
|
if [ "${BATCH_PARTITION_ID}" != "" ]
|
|
|
|
then
|
|
|
|
${ECHO} ${BATCH_PARTITION_ID}
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Extract the batch job ID directly from the environment, if available.
|
|
|
|
jid=${BATCH_JOBID:--1}
|
|
|
|
if [ $jid -eq -1 ]
|
|
|
|
then
|
|
|
|
|
|
|
|
# Otherwise, parse it from the PBS/Torque environmental variable.
|
|
|
|
jid=${PBS_JOBID:--1}
|
2010-03-15 08:33:42 +03:00
|
|
|
if [ $jid = "-1" ]
|
2009-08-07 05:15:09 +04:00
|
|
|
then
|
|
|
|
${ECHO} -1
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
jid=`${ECHO} $jid | ${AWK} -F\. '{print $1}'`
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Next, let the ALPS user command interface read the "reservations"
|
|
|
|
# file; but let's not be too hasty about reporting failure.
|
|
|
|
resId=""
|
|
|
|
count=0
|
2010-03-15 08:33:42 +03:00
|
|
|
while [ "$resId" = "" ]
|
2009-08-07 05:15:09 +04:00
|
|
|
do
|
|
|
|
|
|
|
|
# We're in a while loop, so skip the delay on the first trip.
|
|
|
|
if [ $count -gt 0 ]
|
|
|
|
then
|
|
|
|
${SLEEP} 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Try to get the ALPS resId.
|
|
|
|
resId=`${APSTAT} -r | ${GREP} $jid | ${AWK} '{print $1}'`
|
|
|
|
|
|
|
|
# Give up after 10 tries.
|
|
|
|
count=`expr $count + 1 `
|
|
|
|
if [ $count -ge 10 ]
|
|
|
|
then
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
# If we still don't have it after 10 attempts, then, I reckon that it
|
|
|
|
# just wasn't meant to be.
|
2010-03-15 08:33:42 +03:00
|
|
|
if [ "$resId" = "" ]
|
2009-08-07 05:15:09 +04:00
|
|
|
then
|
|
|
|
${ECHO} 2
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
${ECHO} $resId
|
|
|
|
exit 0
|