使用sbatch --dependency=afterok:$dependencylist
提交作业应该使当前提交等待,直到id为$dependencylist
的作业以退出码0
结束。如果$dependencylist
中的部分或全部id不是有效的作业id或从未提交过,会发生什么情况?SLURM会识别它并开始工作吗?
或者,我如何为sbatch
提供空参数?我尝试了sbatch --dependency=afterok:""
,但SLURM抱怨sbatch: error: Batch job submission failed: Job dependency problem
。我想保留--dependency
选项的原因是,我正在编写一个更通用的脚本,有时我将有一些依赖关系,而其他时候我不会。
如果$dependencylist中的部分或全部id不是有效的作业id或从未提交过,会发生什么?
从Slurm 20.02.7的测试来看,如果slurmctld
的作业ID是未知的(要么还没有提交,要么是以前的作业,而不是配置为MinJobAge
的作业),则该选项被静默忽略。scontrol show job
表示Dependency=(null)
。即使出现了具有该ID的作业,这也不会更改。
或者,我如何为sbatch提供空参数?
你可以使用"0"来利用上面描述的行为当不需要依赖项时,作为作业ID。