当我使用选项--gres = gpu:1提交一个SLURM作业到有两个GPU的节点时,如何获取为作业分配的GPU的ID?是否有环境变量用于此目的?我使用的GPU都是Nvidia GPU。谢谢。
您可以通过环境变量CUDA_VISIBLE_DEVICES
获取GPU id。这个变量是分配给作业的GPU id的逗号分隔列表。
SLURM_STEP_GPUS
或SLURM_JOB_GPUS
:echo ${SLURM_STEP_GPUS:-$SLURM_JOB_GPUS}
请注意CUDA_VISIBLE_DEVICES
可能与实际值不对应(参见@isarandi的评论)。
另外,请注意,这也适用于非Nvidia的GPU。