首页 > 解决方案 > 从多个 SLURM GPU 资源中进行选择

问题描述

我正在通过 SLURM 调度程序向集群提交作业,假设我可以访问集群中的 5 种类型的 GPU。它们是 A、B、C、D、E 类型的 GPU。我想提交一份作业,要求使用 A 或 B 或 C 类型的 GPU,但不使用 D 或 E 类型的 GPU。所以我需要某种带有--gres标志的 OR 逻辑。

作为一个具体的例子,当我请求一个单一类型的 gpu(在这种情况下,一个 RTX 2080)时,它看起来像这样: qlogin -p gpu --gres=gpu:rtx2080:1 --mem=8g -c 2我想这样做,但允许 SLURM 从允许的 GPU 类型列表中进行选择

标签: gpuslurm

解决方案


Slurm 目前没有该选项。

一种解决方法是让系统管理员设置features具有 GPU 类型的节点以允许请求,例如:

qlogin -p gpu --gres=gpu:1 --constraint="rtx2080|rtx3090" --mem=8g -c 2

(假设qlogin使用与 相同的选项sbatch

如果这是不可能的,您可以提交尽可能多的工作,只要有您想要的 GPU 类型,都具有相同--job-name=<SOME_NAME>--dependency=singleton选项。然后你使用首先开始的任何工作并取消另一个

scancel --jobname <SOME_NAME> --state=PENDING

--dependency选项可确保一次仅启动一项作业。


推荐阅读