【问题标题】:How to wait for a torque job array to complete如何等待扭矩作业阵列完成
【发布时间】:2013-10-22 12:28:47
【问题描述】:

我有一个将数据结构拆分成块的脚本。使用扭矩作业数组处理块,然后合并回单个结构。

合并操作取决于作业数组的完成。如何让合并操作等待扭矩作业数组完成?

$ qsub --version
Version: 4.1.6

我的脚本如下:

# Splits the data structure and processes the chunks
qsub -t 1-100 -l nodes=1:ppn=40,walltime=48:00:00,vmem=120G ./job.sh
# Merges the processed chunks back into a single structure
./merge.sh

我试过了:

qsub -t 1-100 -l nodes=1:ppn=40,walltime=48:00:00,vmem=120G -N job1 ./job.sh
qsub -W depend=afterokarray:job1 ./merge.sh

还有:

qsub -t 1-100 -l nodes=1:ppn=40,walltime=48:00:00,vmem=120G -N job1 ./job.sh
qsub -hold_jid job1 ./merge.sh

都没有用。前者导致错误[qsub: 非法-W值],后者也导致错误:qsub: script file 'job1' cannot be loaded - No such file or directory.

【问题讨论】:

  • 您没有正确使用afterokarray 语法。它应该是 -W depend=afterokarray:12345[] 其中 12345[] 是前面的qsub 返回的数组作业 ID。另请参阅here on SO
  • @Josh - 在使用 -hold_jid 标志时,您是否解决了“无法加载'job1'”错误的问题?我目前正在尝试实现相同的功能并遇到相同的错误。谢谢!

标签: cluster-computing torque


【解决方案1】:

的输出
qsub -t 1-100 -l nodes=1:ppn=40,walltime=48:00:00,vmem=120G -N job1 ./job.sh

包含作业标识。 所以以下应该在 bash 中工作:

FIRST=`qsub first_1.sh`
qsub -W depend=afterok:$FIRST second_1.sh

【讨论】:

  • 这消除了与非法 -W 值相关的错误,但第二个脚本(在您的示例中为 second_1.sh)似乎没有运行。
【解决方案2】:

答案

你应该使用afterokarray:

ID=$(qsub -t 1-100 -l nodes=1:ppn=40,walltime=48:00:00,vmem=120G -N job1 ./job.sh)
qsub -W depend=afterokarray:$(ID) ./merge.sh

另一个例子

这是另一个例子,假设您需要执行两次作业,然后再执行一次:

#!/bin/bash
#PBS -q batch
#PBS -l walltime=24:00:00
#PBS -o /app/run/KLFLO/nueva_tarea_0.$PBS_ARRAYID.out
#PBS -e /app/run/KLFLO/nueva_tarea_0.$PBS_ARRAYID.err
#PBS -N KLFLO_nueva_tarea_0
#PBS -t 1-2 # times 
sleep 20
/bin/cat /etc/hosts

在其他提交文件中执行qsub < nueva_tarea_2.bash 并使用 (10[].docker)

#!/bin/bash
#PBS -q batch
#PBS -l walltime=24:00:00
#PBS -o /app/run/KLFLO/nueva_tarea_2.$PBS_ARRAYID.out
#PBS -e /app/run/KLFLO/nueva_tarea_2.$PBS_ARRAYID.err
#PBS -N KLFLO_nueva_tarea_2
#PBS -t 1-2 # times
#PBS -W depend=afterokarray:10[].docker
/bin/cat /etc/hosts

【讨论】:

    猜你喜欢
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 2013-01-19
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多