slurm random use cpu annotations

This commit is contained in:
q
2015-01-19 20:45:59 +02:00
parent d14acf15ec
commit 8cd0604d02
2 changed files with 21 additions and 9 deletions

View File

@@ -97,7 +97,6 @@ do if [[ "${!i}" == */_command ]]
sleep 1; [ "$retrys" -gt 15 ] && break;
}
done ' >> "$JOBFILE"
grep ^metadata.CPU "${!i}"
fi
done

View File

@@ -48,7 +48,20 @@ do
done
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"
while [ -d "$JOBPATH" ]
do echo Jobpath "$JOBPATH" exists
@@ -60,6 +73,8 @@ JOBFILE="$JOBPATH/job"
STATFILE="$JOBPATH/statistics"
STRMFILE="$JOBPATH/stream"
EXECPATH=$( pwd )
[[ -z "$CPU" ]] || export CPU="-c $CPU"
[[ -z "$MEMORY" ]] || export MEMORY="--mem $MEMORY"
# create the jobfile
echo '#!/bin/bash' > "$JOBFILE"
@@ -95,19 +110,17 @@ echo 'EC=$?' >> "$JOBFILE"
echo "date +'Stop: %s' >> \"$STATFILE\" " >> "$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)
(
[[ -e "$JOBROOT"/.lastdel ]] || touch "$JOBROOT"/.lastdel
if test "$( find $JOBROOT/.lastdel -mmin +30 )"
then touch "$JOBROOT"/.lastdel
find "$JOBROOT" -maxdepth 2 -mindepth 2 -type f -mtime +20 -delete 2>/dev/null
find "$JOBROOT" -type d -depth -empty -delete 2>/dev/null
fi
) &
echo "The job file is in $JOBFILE"
# send the job
srun --nodelist=${NODELIST[$INDEX]} slurm-cake "$JOBFILE" "$JOBFILE"
EC=$?
wait
exit $EC