SLURM:将 GPU 访问限制为仅 SLURM

SLURM:将 GPU 访问限制为仅 SLURM

我有一台带有 4 个 TitanX GPU 的机器(Ubuntu 16.04 Server)。这将是一台实验室机器,学生将在其中学习 CUDA 等知识。我安装 SLURM 是因为我想要一个根据 GPU 可用性自动调度和排队作业的工具。

为此,学生只能通过 SLURM 访问 GPU。有没有办法在单机设置中实现此目的,其中 SLURM 和卡位于同一主机上?

学生只能通过以下方式获取卡:

# srun --gres ...

我知道,CUDA_VISIBLE_DEVICES但是当 root 甚至每个用户设置时,这个变量会被忽略。它仅在按进程设置时才有效,例如 deviceQuery来自 CUDA 示例:

# CUDA_VISIBLE_DEVICES=2 /usr/local/cuda-9.0/extras/demo_suite/deviceQuery

而且它可能被 SLURM 本身用来限制卡牌,所以它(而不是)不是一个解决方案。

最好的问候
K.

答案1

创建一个 PrologSlurmctld (https://slurm.schedmd.com/slurm.conf.html#OPT_PrologSlurmctld)脚本,使用 setfacl 将 GPU(/dev/nvidia* 设备)的访问权限设置为当前用户

相关内容