【问题标题】:Slurm - randomize GPU allocationSlurm - 随机分配 GPU
【发布时间】:2021-07-26 14:37:06
【问题描述】:

我们正在配备 4 个 GPU 的单个计算机服务器上设置 Slurm。我一直在尝试找到一种方法让 Slurm 将作业分配给随机 GPU,在其中我以轻松的方式使用“随机”,这意味着例如,如果正在使用 GPU 1,那么请求 GPU 资源的新作业应该是分配在随机 GPU anomg 那些空闲的 (0, 2, 3)

问题在于,就像现在一样,Slurm 总是首先分配 GPU0,然后是 GPU1,然后是 2、3。这会导致 GPU0 随着时间的推移执行更多的工作,因此磨损得更快。随机选择会更好。

我已阅读有关 Sbatch 等的文档,但似乎可以选择特定的 GPU 来运行作业,但不能如上所述随机选择它。

【问题讨论】:

    标签: slurm


    【解决方案1】:

    我遇到了同样的问题,并为此编写了一个程序。请看https://github.com/gqqnbig/randomize-gpu

    主要是在启动 slurmd 之前运行以下脚本。

    #! /usr/bin/zsh -e
    
    setopt extended_glob
    # --force bypasses the error
    # "rm: missing operand", when there are no files to delete.
    rm --force /dev/rNvidia[0-9]#(N)
    nvidias=( $(printf '%s\n' /dev/nvidia[0-9]# | shuf) )
    for ((i = 1; i <= $#nvidias; i++)) do
        echo "Link "${nvidias[$i]}" to rNvidia$((i-1))"
        ln -s ${nvidias[$i]} /dev/rNvidia$((i-1))
    done
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多