首页 > 解决方案 > 如何使用 SLURM 在带有 CUDA 的 GPU 网格上运行多个作业

问题描述

我一直致力于使用 CUDA 加快工作的处理时间。通常这会相当简单,但是我遇到了一个相当有趣的问题。我们正在使用 slurm 来安排我们的作业,通过添加 CUDA 代码并启用它的编译,它已将单个作业时间减少了一半。在查看 GPU 上的负载时会出现问题。在启用 CUDA 之前,我们可以为每个节点运行 6 个作业。但是,启用 CUDA 后,每个节点只能运行 2 个作业 - 每个 GPU 上 1 个。

最初,认为我的提交脚本有问题,我去尝试添加:

--ntasks-per-node=6

到提交命令。

这将返回一个错误,说明:

sbatch: error: Batch job submission failed: Requested node configuration is not available

这让我相信我的 slurm.conf 配置不正确。任何帮助将不胜感激。我不能完全发布 slurm.conf,但我可以查看任何设置和/或根据建议更改它们。

编辑:在准备提交问题之前填写标签时不小心按了 Enter。

标签: simulationhpcslurm

解决方案


原来我们在 slurm.conf 中有一个隐藏的 gres=gpu:1。删除它允许我们(在我们的例子中受限于 CPU 负载原因)最多可以将六个 CUDA + OpenGL 作业提交到具有一个 K80 GPU 的节点。


推荐阅读