simulation - 如何使用 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。
解决方案
原来我们在 slurm.conf 中有一个隐藏的 gres=gpu:1。删除它允许我们(在我们的例子中受限于 CPU 负载原因)最多可以将六个 CUDA + OpenGL 作业提交到具有一个 K80 GPU 的节点。
推荐阅读
- python - 使用 PSEXEC 将日志文件的内容打印到控制台输出
- c# - 如何读取 Quartz.Net 作业的 JOB_DATA?
- awk - 如何克服 awk 中的“(文件名 = - FNR = 1)致命:除零尝试”错误
- python - 不和谐 API。on_member_remove() 上的异常错误
- php - Maatwebsite Laravel Excel 排队导出序列化错误
- neo4j - Neo4j 中的意外关系和节点 COUNT
- python - 如何利用 ffmpeg 从视频流中提取关键帧并仅打印这些帧中存在的标签?
- ms-access - 虚拟化 VB6 应用程序的解决方案
- android - 打开意图相机时,提供者无权访问内容
- html-lists - 是否可以在 OpenLayers 中拖动图层?