Skip to main content

控制作业

常用控制命令

命令 功能
bjobs 查看自己未结束的作业
bjob -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分钟,默认为一年。