我正在尝试使用PBS高性能计算机作业调度程序链接两个计算作业。我的脚本如下:
脚本名为 1.pbs :
#!/bin/bash
#PBS -N 1
#PBS -q thin
#PBS -l walltime=0:03:00
#PBS -l select=1:ncpus=1
#PBS -j oe
#PBS -J 1-10
cd $PBS_O_WORKDIR
echo 'SCRIPT 1'
qsub -W depend=afterok:${PBS_ARRAY_ID} 2.pbs
脚本名为 2.pbs :
#!/bin/bash
#PBS -N 2
#PBS -q thin
#PBS -l walltime=0:03:00
#PBS -l select=1:ncpus=1
#PBS -j oe
cd $PBS_O_WORKDIR
echo 'SCRIPT 2'
由于脚本 1.pbs 是一个数组(运行脚本的10个副本),当阵列完成脚本 2.pbs 时也会运行10个副本(1个来自每个在阵列工作期间都提交了1.pbs。
我的问题是:我如何设置这两个脚本,使脚本 1.pbs 正常运行为数组,然后在所有阵列作业完成脚本 2.pbs 仅运行 。
答案 0 :(得分:0)
一种方法:让1.pbs触摸/ tmp /中的信号量文件,作为执行qsub
的条件。
答案 1 :(得分:0)
不要运行" qsub -W依赖"来自第一份工作。
像这样运行:
my1job = qsub 1.pbs
qsub -W depend = afterok:$ my1job 2.pbs