PKUHPC / CraneSched

An HPC and Cloud Computing Fused Job Scheduling System
Other
75 stars 17 forks source link

feat: dependency #307

Closed NamelessOIer closed 3 months ago

NamelessOIer commented 3 months ago

提交时指定任务在某些任务达成某一状态后才能启动,示例: cbatch test.sh -d=afterany:1 表示当前任务test.sh必须在编号为1的任务结束(包括取消、超时、失败、运行完成)后开始。

目前支持的依赖类型:

一个任务可以依赖多个任务,要么要求达成全部条件,要么要求达成其中一个,两种情况分别使用,?分隔要求,示例: cbatch test.sh -d=afterany:1,after:2:要求在任务1结束且任务2已经开始或取消后才能启动 cbatch test.sh -d=afterany:1?after:2:要求在任务1结束或任务2已经开始或取消后才能启动

当依赖条件相同时,允许简写,用:分隔依赖任务编号,示例: cbatch test.sh -d=afterany:1:2,after:3:要求在任务1、2全部结束且任务3已经开始或取消后才能启动 cbatch test.sh -d=afterany:1:2?after:3:要求在任务1、2其中之一结束或任务3已经开始或取消后才能启动 当没有使用,?分隔时,默认为需要全部满足。

目前已知问题:calloc 没有处理退出返回值,因此用 exit 退出 calloc 总被视为任务运行完毕且返回值不为零,cbatch 和 crun 任务正常。