在节点上为 GPU 作业预留一些 CPU

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

我正在使用 Slurm 设置 GPU 集群。这些节点具有可变数量的 CPU 核心 (8-32) 和可变数量的 GPU (1-4)。将要运行的 GPU 作业通常需要很少的 CPU 资源,但集群上也可能运行大量仅使用 CPU 的作业。

有没有办法可以为 GPU 作业“保留”一些 CPU?我目前遇到的问题是,如果集群使用 CPU 作业进行备份,那么任何 GPU 作业都将位于队列末尾,并且 GPU 将处于空闲状态。理想情况下,我想设置单独的 GPU 和 CPU 分区,并将 CPU 分区限制为使用例如每个节点上的所有 4 个核心,以确保始终有一些空闲的空间用于随之而来的任何 GPU 作业。但是,我无法弄清楚如何将节点的一部分分配给分区。我无法使用 MaxCpusPerNode(据我所知),因为节点并不都具有相同数量的 CPU。

我已经设置了具有单个默认分区的集群,SelectTypeParameters=CR_Core 和 SelectType=select/cons_tres. GPU 分配一切正常,但如果调度了很多 CPU 作业,那么 GPU 作业就会卡在队列中等待 CPU 空闲,这是非常低效的。

欢迎所有建议!

gpu slurm
1个回答
0
投票

请参阅此处建议的解决方案。这个想法是将同一个节点注册到 GPU 分区和 CPU 分区,并限制每个分区中节点上可用的 CPU 数量。

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