Eu tenho uma única máquina (Ubuntu 16.04 Server) com 4 GPUs TitanX. Esta será uma máquina de laboratório na qual os alunos aprenderão sobre o CUDA e outras coisas. Eu instalei SLURM porque eu quero uma ferramenta para agendar e enfileirar trabalhos automaticamente com base na disponibilidade da GPU.
Para que isso funcione, os alunos devem ter acesso somente às GPUs através do SLURM. Existe uma maneira de conseguir isso em uma única máquina setup, onde o SLURM e os cartões estão no mesmo host?
Os alunos só devem acessar cartões por meio de:
# srun --gres ...
Eu sei sobre CUDA_VISIBLE_DEVICES
, mas esta variável é ignorada quando definida
por raiz ou até mesmo por usuário. Só funciona quando definido por processo, por exemplo
deviceQuery
das amostras de CUDA:
# CUDA_VISIBLE_DEVICES=2 /usr/local/cuda-9.0/extras/demo_suite/deviceQuery
E ele pode ser usado pelo próprio SLURM para restringir cartões, então é (não) uma solução.
Cumprimentos
K.