有没有办法使用 sbatch 向 Slurm 提交作业,并在可用的情况下使用 GPU,但如果没有可用的 GPU,则在 cpu 上运行?
设置:
#SBATCH --gres=gpu:1
仅在有GPU可用的节点上运行。
省略它或将其设置为 0 永远不会使 GPU 可用。
不幸的是,Slurm 中没有针对此用例的直接解决方案。解决方法可以是提交两项作业,一项带有
--gres
,另一项没有,并且
--job-name
相同--dependency=singleton
scancel --jobname <chosen job name> --state PENDING
上述配置将确保 Slurm 只能启动一项作业,并且一旦一项作业启动,就会取消另一项作业。