默认在 CPU 上运行作业,但在 Slurm 中可用时在 GPU 上运行作业

问题描述 投票:0回答:1

有没有办法使用 sbatch 向 Slurm 提交作业,并在可用的情况下使用 GPU,但如果没有可用的 GPU,则在 cpu 上运行?

设置:

#SBATCH --gres=gpu:1
仅在有GPU可用的节点上运行。 省略它或将其设置为 0 永远不会使 GPU 可用。

gpu cpu slurm
1个回答
0
投票

不幸的是,Slurm 中没有针对此用例的直接解决方案。解决方法可以是提交两项作业,一项带有

--gres
,另一项没有,并且

  • 将它们命名为
    --job-name
    相同
  • 在两者上设置
    --dependency=singleton
  • 在提交脚本顶部插入
    scancel --jobname <chosen job name> --state PENDING

上述配置将确保 Slurm 只能启动一项作业,并且一旦一项作业启动,就会取消另一项作业。

© www.soinside.com 2019 - 2024. All rights reserved.