控制作业
常用控制命令
命令 | 功能 |
---|---|
bjobs |
查看自己未结束的作业 |
bjobs -l JOBID |
查看某个未结束作业的详情 |
bhist |
查看自己已结束的历史作业 |
bhist -l JOBID |
查看某个已结束历史作业的详情 |
bpeek JOBID |
查看正在运行某个作业的stdout/stderr |
bkill JOBID |
终止某个作业 |
btop JOBID |
设置作业最先运行 |
bbot JOBID |
设置作业最后运行 |
作业依赖
一个计算任务可能分成几步,而每一步对资源的需求不同,因此需要分开提交,但这些作业之间又具有依赖关系,bsub 可使用选项 -w 'dependency_expression'指定依赖关系。如果计算任务分成几步,但是每步对资源需求一样,那么请写在一个作业任务中依次执行。
-
-w 'done(job_ID | "job_name")'
:需要 job_ID 或 job_name 作业完成且状态为 DONE,即退出码为0 -
-w 'ended(job_ID | "job_name")
':需要 job_ID 或 job_name 作业完成或退出,状态为 EXIT 或 DONE - 支持逻辑表达式&& (AND)、|| (OR)、! (NOT)
- 孤儿作业(即依赖条件不可能满足的)1分钟后会被自动终止
更多详细信息见官方文档
作业等待
bwait -w "wait_condition" [-t timeout]
暂停并等待作业条件满足,不满足一直暂停等待,满足则执行完毕返回。
典型用法:在脚本中不要循环使用bjobs判断作业状态,而用bwait等待作业运行完成,这样更优雅且能显著降低对集群的压力。
-
-w wait_condition
:要满足的等待条件,此表达式与上述bsub -w
选项的格式相同。 -
-t timeout
:等待条件的超时,范围为1-525600分钟,默认为一年。