控制作业
常用控制命令
|---|---|
|命令|功能|
|bjobs
|查看自己已提交或正在运行但尚未结束的作业|
bjobs #查看自己已提交或正在运行但尚未结束的作业
bjob -l JOBID #查看某个已提交或正在运行作业的的详细信息
bhist #查看已完成历史作业
bhist -l JOBID #查看已完成历史作业的详细信息
bpeek JOBID #查看正在运行作业的标准输出
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分钟,默认为一年。