kjo*_*kjo 6 cluster-computing lsf
基本问题:我想将N + 1个作业提交给LSF管理的Linux集群,这样 就可以在前N个作业完成之前不运行(N + 1)-st"总结"作业.
EXTRA: 如果可能的话,如果我可以安排事情以便(N + 1)-st("总结")作业作为其第一个参数接收值为0(比如说,如果以前的话),那将是理想的N个作业成功终止,否则值不同于0.
这个问题(或者至少标有"BASIC PROBLEM"的部分)比LSF 设计用来处理的要简单得多bsub,所以我很难浏览大量的文档bsub来找出做我想做的最简单的方法.去做.
bsub实现这种安排最简单的命令是什么?
更具体地说,我需要更换???下面的各个插槽以确保wrapup仅在所有foo作业完成后执行(理想情况下使用反映foo作业结束状态的参数)?
bsub -q someq ??? foo 1
bsub -q someq ??? foo 2
bsub -q someq ??? foo 3
bsub -q someq ??? wrapup [???]
Run Code Online (Sandbox Code Playgroud)
Squ*_*rel 10
为了扩展Michael Closson的答案,你在这里寻找的是bsub的-w选项,它允许你提交一个只有在满足一些依赖条件时才会被安排的工作.
如果用-J命名每个"foo $ i"作业,最常用的条件是其他作业的退出状态:
bsub -q someq -J "job_1" foo 1
bsub -q someq -J "job_2" foo 2
bsub -q someq -J "job_3" foo 3
Run Code Online (Sandbox Code Playgroud)
然后,您可以提交另一个取决于这些作业退出状态的作业,如下所示:
bsub -q someq -w "done(job_1) && done(job_2) && done(job_3)" wrapup
Run Code Online (Sandbox Code Playgroud)
这告诉LSF仅在名为job_1,job_2和job_3的作业以DONE状态终止时才安排"换行".您还可以使用作业ID而不是作业名称,或使用表达式指定要测试的特定状态
done("job_1") // termination status is DONE
exit("job_1") // termination status is EXIT
ended("job_1") // termination status is EXIT or DONE
Run Code Online (Sandbox Code Playgroud)
并将这些与逻辑运算符&&,||,!组合在一起!
| 归档时间: |
|
| 查看次数: |
3346 次 |
| 最近记录: |