开发者
资源
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

服务器调度

  • 节点较少时,使用 “--nodelist“ 指定一个或多个节点。可用如下命令:

    sbatch --nodelist=node-001,node-002 script.sh # node-001,node-002表示待调度的节点,script.sh 表示待执行的脚本或应用

    srun --nodelist=node-001,node-002 command_to_run # 交互式执行。node-001,node-002表示待调度的节点,command_to_run 表示待执行的命令

  • 节点较多时,可通过指定标签(“--constraint” 或 “-C” 选项)来选择具有特定特性的计算节点。这通常用于确保作业运行在满足某些硬件或软件要求的节点上。

    sbatch --constraint=x86_64 script.sh # --constraint=x86_64表示指定了作业只能运行在带有 "x86_64" 标签的节点上

    srun --constraint=arm command_to_run # --constraint=arm表示指定了作业只能运行在带有 "arm" 标签的节点上。

节点打标签操作步骤

在Slurm中为节点打标签(即设置节点属性或特征)主要通过配置节点的Features或Gres(通用资源)属性来实现。Features是Slurm中用于标记节点特性的字段,常用于标识硬件、软件或功能特性(如GPU型号、存储类型等)。Gres用于定义节点的特殊资源(如GPU、FPGA等),支持设置资源的类型和数量。以下打标签步骤主要使用Features来实现,具体步骤如下:

  1. 使用PuTTY工具,以root用户登录Slurm控制节点服务器。
  2. 执行以下命令,编辑 slurm.conf配置文件。

    vim /usr/local/etc/slurm.conf

  3. 找到节点定义部分(例如 NodeName),在节点配置行中添加 Features参数。
    NodeName=node-001 NodeAddr=192.168.1.3 CPUs=16 Features=arm,gpu State=UNKNOWN
    NodeName=node-002 NodeAddr=192.168.1.4 CPUs=16 Features=arm State=UNKNOWN
    • 这里为 "node-001" 添加了 "arm" 和 "gpu" 两个标签,为 "node-002" 添加了 "arm" 标签。
    • 标签命名规范:避免使用空格或特殊字符,推荐小写字母和短横线(如 `gpu-v100`)。
  4. 执行以下命令,重启Slurm服务。

    slurmctld -c

    systemctl restart slurmctld.service

  5. 执行以下命令,验证标签是否生效。

    sinfo -o "%N %f"

    执行结果回显举例如下:

    NODELIST AVAIL_FEATURES
    node-001 arm,gpu
    master (null)
    node-002 arm

    arm、gpu为生效的标签示例。

  6. 执行以下命令,查看单个节点的Features。

    scontrol show node node-001 | grep Features

    执行结果回显示例如下:

    AvailableFeatures=arm,gpu
    ActiveFeatures=arm,gpu
  7. 执行以下命令,在作业提交时使用标签。

    srun --constraint="arm" -N2 hostname

    执行结果回显示例如下:

    node-001
    node-002