SLURM 依赖于不存在的作业 ID

SLURM dependency on nonexistent job ID

提交带有 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 选项的原因是我正在编写一个更通用的脚本,有时我会有一些依赖关系,有时我不会。

What happens if some or all IDs in $dependencylist are not valid job IDs or have never been submitted?

从使用 Slurm 20.02.7 进行的测试来看,作业 ID 似乎在 slurmctld 中未知(要么尚未提交,要么作业的时间早于配置为 MinJobAge), 该选项被静默忽略。 scontrol show job 然后说 Dependency=(null)。这不会在之后改变,即使出现具有该 ID 的工作。

Alternatively, how can I provide empty arguments to sbatch?

当不需要依赖项时,您可以通过使用“0”作为作业 ID 来利用上述行为。