链接阵列PBS作业

时间:2017-06-28 17:44:12

标签: arrays bash hpc qsub pbs

我正在尝试使用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 仅运行

2 个答案:

答案 0 :(得分:0)

一种方法:让1.pbs触摸/ tmp /中的信号量文件,作为执行qsub的条件。

答案 1 :(得分:0)

不要运行" qsub -W依赖"来自第一份工作。

像这样运行:

my1job = qsub 1.pbs qsub -W depend = afterok:$ my1job 2.pbs