maxfree can now use the annotations
This commit is contained in:
@@ -53,7 +53,20 @@ done
|
|||||||
echo "srun: Node ${NODELIST[$INDEX]}, Free sockets: ${NODERUNS[$INDEX]}" >&2
|
echo "srun: Node ${NODELIST[$INDEX]}, Free sockets: ${NODERUNS[$INDEX]}" >&2
|
||||||
|
|
||||||
mkdir -p "$JOBROOT"
|
mkdir -p "$JOBROOT"
|
||||||
JOBNAME=job_$( date +"%y%m%d_%H%M%S" )_$( echo $@ | md5sum | cut -f1 -d" " )
|
for (( i=1; i<=$#; i++ ))
|
||||||
|
do if [[ "${!i}" == */_command ]]
|
||||||
|
then JOBNAME=job_
|
||||||
|
COMPONENTNAME=$( grep ^metadata.componentName= "${!i}" | sed s,^metadata.componentName=,, | sed -e 's/[^A-Za-z0-9._-]/_/g' )
|
||||||
|
INSTANCENAME=$( grep ^metadata.instanceName= "${!i}" | sed s,^metadata.instanceName=,, | sed -e 's/[^A-Za-z0-9._-]/_/g' )
|
||||||
|
JOBNAME="$JOBNAME"$( grep ^metadata.sourceLocation= "${!i}" | sed s,^metadata.sourceLocation=,, | sed -e 's/[^A-Za-z0-9._-]/_/g' )
|
||||||
|
JOBNAME="$JOBNAME"_$INSTANCENAME
|
||||||
|
JOBNAME="$JOBNAME"_$COMPONENTNAME
|
||||||
|
JOBNAME="$JOBNAME"_$( date +"%y%m%d_%H%M%S" )
|
||||||
|
CPU=$( grep ^metadata.cpu= "${!i}" | sed s,^metadata.cpu=,, )
|
||||||
|
MEMORY=$( grep ^metadata.memory= "${!i}" | sed s,^metadata.cpu=,, )
|
||||||
|
export USERDEFINED=$( grep ^metadata.userDefined= "${!i}" | sed s,^metadata.userDefined=,, )
|
||||||
|
fi
|
||||||
|
done
|
||||||
JOBPATH="$JOBROOT/$JOBNAME"
|
JOBPATH="$JOBROOT/$JOBNAME"
|
||||||
while [ -d "$JOBPATH" ]
|
while [ -d "$JOBPATH" ]
|
||||||
do echo Jobpath "$JOBPATH" exists
|
do echo Jobpath "$JOBPATH" exists
|
||||||
@@ -65,6 +78,8 @@ JOBFILE="$JOBPATH/job"
|
|||||||
STATFILE="$JOBPATH/statistics"
|
STATFILE="$JOBPATH/statistics"
|
||||||
STRMFILE="$JOBPATH/stream"
|
STRMFILE="$JOBPATH/stream"
|
||||||
EXECPATH=$( pwd )
|
EXECPATH=$( pwd )
|
||||||
|
[[ -z "$CPU" ]] || export CPU="-c $CPU"
|
||||||
|
[[ -z "$MEMORY" ]] || export MEMORY="--mem $MEMORY"
|
||||||
|
|
||||||
# create the jobfile
|
# create the jobfile
|
||||||
echo '#!/bin/bash' > "$JOBFILE"
|
echo '#!/bin/bash' > "$JOBFILE"
|
||||||
@@ -82,6 +97,7 @@ do if [[ "${!i}" == */_command ]]
|
|||||||
sleep 1; [ "$retrys" -gt 15 ] && break;
|
sleep 1; [ "$retrys" -gt 15 ] && break;
|
||||||
}
|
}
|
||||||
done ' >> "$JOBFILE"
|
done ' >> "$JOBFILE"
|
||||||
|
grep ^metadata.CPU "${!i}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -100,19 +116,17 @@ echo 'EC=$?' >> "$JOBFILE"
|
|||||||
echo "date +'Stop: %s' >> \"$STATFILE\" " >> "$JOBFILE"
|
echo "date +'Stop: %s' >> \"$STATFILE\" " >> "$JOBFILE"
|
||||||
echo 'exit $EC' >> "$JOBFILE"
|
echo 'exit $EC' >> "$JOBFILE"
|
||||||
|
|
||||||
|
echo "The job file is in $JOBFILE"
|
||||||
|
# send the job
|
||||||
|
echo \#srun $CPU $MEMORY -J $INSTANCENAME --nodelist=${NODELIST[$INDEX]} slurm-cake "$JOBFILE" "$JOBFILE" >> "$JOBFILE"
|
||||||
|
srun $CPU $MEMORY -J $INSTANCENAME --nodelist=${NODELIST[$INDEX]} slurm-cake "$JOBFILE" "$JOBFILE"
|
||||||
|
EC=$?
|
||||||
# clear out old job definitions (semirandomly)
|
# clear out old job definitions (semirandomly)
|
||||||
(
|
|
||||||
[[ -e "$JOBROOT"/.lastdel ]] || touch "$JOBROOT"/.lastdel
|
[[ -e "$JOBROOT"/.lastdel ]] || touch "$JOBROOT"/.lastdel
|
||||||
if test "$( find $JOBROOT/.lastdel -mmin +30 )"
|
if test "$( find $JOBROOT/.lastdel -mmin +30 )"
|
||||||
then touch "$JOBROOT"/.lastdel
|
then touch "$JOBROOT"/.lastdel
|
||||||
find "$JOBROOT" -maxdepth 2 -mindepth 2 -type f -mtime +20 -delete 2>/dev/null
|
find "$JOBROOT" -maxdepth 2 -mindepth 2 -type f -mtime +20 -delete 2>/dev/null
|
||||||
find "$JOBROOT" -type d -depth -empty -delete 2>/dev/null
|
find "$JOBROOT" -type d -depth -empty -delete 2>/dev/null
|
||||||
fi
|
fi
|
||||||
) &
|
|
||||||
|
|
||||||
echo "The job file is in $JOBFILE"
|
|
||||||
# send the job
|
|
||||||
srun --nodelist=${NODELIST[$INDEX]} slurm-cake "$JOBFILE" "$JOBFILE"
|
|
||||||
EC=$?
|
|
||||||
wait
|
|
||||||
exit $EC
|
exit $EC
|
||||||
|
|||||||
Reference in New Issue
Block a user