Slrum:如何在不被终止的情况下继续工作?

时间:2018-08-14 22:25:37

标签: sleep slurm qsub sbatch

我使用script1提交了工作。在script1中,我一起提交了许多单独的作业,以避免冗长的排队时间。现在,由于许多单独的作业步骤而出现了问题。每当一个工作步骤完成时,它就被写入slurm数据库。出于备份原因,管理员每天早上5点每天转储数据库,转储数据库大约需要20分钟。如果作业步骤在此时隙中完成,则它将无法访问数据库,并且在一段时间后,作业将中止。

为解决上述问题,我使用了script2,从凌晨4点到凌晨6点,我将工作保持在睡眠模式2个小时。不幸的是,问题再次发生。我如何摆脱这个问题,而忽略备份时间,继续运行我的工作?

谢谢

===== script1 ======

#!/bin/bash
#SBATCH -J all
#SBATCH -N 8
#SBATCH --ntasks-per-node=24
#SBATCH --ntasks-per-core=1
#SBATCH --mail-type=ALL

EXECUTABLE=path

for i in {33..110..1}
do
mkdir $i
cd $i

ulimit -s unlimited

srun -np 128 $EXECUTABLE 1>out 2>err
echo "finished time `date +%H%M%S`"

echo "done"
sleep 10
cd ../
done
echo "END"

====== script2 =====

#!/bin/bash
#SBATCH -J all
#SBATCH -N 8
#SBATCH --ntasks-per-node=24
#SBATCH --ntasks-per-core=1
#SBATCH --mail-type=ALL

EXECUTABLE=path

for i in {33..110..1}
do
mkdir $i
cd $i

ulimit -s unlimited

srun -np 128 $EXECUTABLE 1>out 2>err

echo "finished time `date +%H%M%S`"

echo "done"
sleep 10
cd ../

###********Time check********
timenow="`date +%H%M%S`"

echo "in time $timenow"

if [[ "$timenow" > 040000 && "$timenow" < 060000 ]]
then
   echo "done"
   sleep 2h
fi

echo "out time `date +%H%M%S`"
done
echo "END"

0 个答案:

没有答案