我试图生成一个允许我检查多个作业是否已在群集上运行的系统。 这个bash代码应该等到所有PBS作业都完成后才能工作:
#create the array
ALLMYJOBS=()
# loop through scripts, submit them and store the job IDs in the array
for i in 1 2 3 4 5
do
ALLMYJOBS[${i}]=$(qsub script${i}.bash)
done
JOBSR=true
# check if all jobs have completed:
while [ ${JOBSR} ];do
JOBSR=false
for m in "${ALLMYJOBS[@]}"
do
if qstat ${m} &> /dev/null; then
JOBSR=true
fi
done
done
我错过了一些明显的东西吗?
答案 0 :(得分:0)
您实施的方式将继续轮询调度程序,这对大型集群来说是不可取的。
如果我要实施,我将使用工作依赖关系,根据您的所有工作定义另一个工作,检查上一个工作的输出或使用电子邮件通知。