View a markdown version of this page

在中配置自定义 GRES 设置 AWS 个 - AWS 个

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在中配置自定义 GRES 设置 AWS 个

Slurm 用于gres.conf管理计算节点上的通用资源 (GRES),例如 GPU、 Multi-Process 服务 (MPS) 和 Multi-Instance GPU (MIG) 设备。 AWS PCS 允许您在创建或更新计算节点组slurmConfiguration期间gres.conf通过的gresCustomSettings属性进行自定义。

与其他自定义设置(参数和值对的简单列表)不同,gresCustomSettings是记录列表。每条记录都是一组描述一个 GRES 设备或资源的gres.conf属性。例如,该记录Name=gpu Type=a100 File=/dev/nvidia[0-7]声明了八个 A100 GPU。

在 Slurm 中,gres.conf记录适用于集群中的每个节点,除非它指定了NodeName=前缀。 AWS PCS 总是为计算节点组添加NodeName=前缀,因此您无需指定前缀,并且您提供的每条记录仅适用于该计算节点组。 AWS PCS 不支持群集范围的gres.conf记录。

配置 gres.conf 设置

gres.conf可以在创建计算节点组期间通过 AWS 控制台、CLI 或 SDK 配置自定义设置,也可以在以后通过更新操作进行修改。

AWS 管理控制台

在计算节点组资源的创建或编辑页面中导航到其他调度器设置。gres.conf以原生形式每行输入一条gres.conf记录(例如,Name=gpu Type=a100 File=/dev/nvidia[0-7])。

AWS CLI

要对gres.conf设置进行编程管理,请使用创建或更新计算节点组操作中的gresCustomSettings字段。列表的每个元素都是一gres.conf条记录。

例— 在计算节点组上声明 GPU 设备
aws pcs update-compute-node-group \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-cng-1 \ --slurm-configuration \ 'gresCustomSettings=[{Name=gpu,Type=a100,File=/dev/nvidia[0-7]}]'

支持计算节点组的 gres.conf 设置

计算节点组级别的每条记录都支持以下gres.conf属性:

有关每个属性的含义和可接受的值,请参阅 Slurm gres .conf 文档。 AWS PCS 根据与 Slurm 适用的相同规则验证您的记录。特别是,每条记录都必须声明一个Name或一个活动AutoDetect值,并且 GPU 记录 (Name=gpu) 必须指定File或,MultipleFiles除非活动AutoDetect值发现了设备。

有效AutoDetect值是任何开启检测的值,例如nvml或full。AutoDetect=off关闭检测,因此它不是有效值,无法在记录中单独使用。

操作方法 AWS PCS 应用你的 gres.conf 记录

GRES 配置出现在 Slurm 配置中的两个位置, AWS PCS 会同时写入这两个配置:

  • 您在中提供的gres.conf记录gresCustomSettings描述了节点上存在的设备。

  • 中的Gres设置以表单形式slurm.confname[:type]:count声明了调度程序可以分配的内容。您可以将其作为计算节点组的自定义 Slurm 设置提供,请参见。slurmCustomSettings有关更多信息,请参阅 的自定义 Slurm 设置 AWS PCS 计算节点组。

AWS PCS 将您的记录呈现到其管理的 GRES 配置中,gres.conf并与之进行核对:

  • 您声明的任何 GPU 记录都将替换 AWS PCS 为计算节点组生成的默认 GPU 记录。GPU 记录是指定Name=gpu或AutoDetect属性的记录。

  • 其他资源(例如mpsshard、或您自己的资源名称)的记录将与 AWS PCS 默认值一起添加。

  • AWS PCS slurm.conf 从该GresTypes设置中导出AccountingStorageTRES设置和设置gres/*条目。Gres

在 Slurm 版本 26.05 及更高版本中,当节点的套接字布局已知时, AWS PCS 会AutoDetect=full默认设置 GPU 计算节点组,这可能是因为您设置Sockets了计算节点组,也可能是因为 AWS PCS 自动检测到了 CPU 拓扑。slurmCustomSettings当插槽布局不可用时, AWS PCS 会AutoDetect改为发出 GPU 记录。

gres.conf 和 Gres 设置之间的限制

Slurm 需要 GRES 配置的两端来调度资源,而只出现在其中一个配置中的资源不起作用。Gres设置中slurm.conf没有gres.conf记录的条目会使节点报告的资源少于配置的资源,并且节点会耗尽。没有Gres条目的记录会使设备留在节点上,但不可调度。

AWS 当您创建或更新计算节点组时,PCS 会相互验证两者,并在以下情况下拒绝该请求:

  • 一个slurm.confGres条目命名了没有gres.conf记录声明的资源。这包括gpu:即使计数为gresCustomSettings,gpu条目也需要在 GPU 中记录0。

  • slurm.confGres条目声明的资源数量高于gres.conf记录声明的数量。允许减少的数量,直至0:gres.conf记录描述节点上存在的设备,同时Gres声明调度程序可以分配多少设备。

  • slurm.confGres条目指定了没有 GPU 记录gres.conf声明的 GPU 类型。

最后两次检查取决于您的记录声明的内容。 AWS PCS 无法计算 Slurm 在节点启动时发现的设备,因此仅启用的记录AutoDetect接受条目中的任何gpu数量和类型。Gres这就是 MIG 配置文件通过验证的方式。 AWS PCS 还会跳过共享 GRES(mps和shard)的计数检查,并在 GPU 记录声明为 “否” 时跳过类型检查。Type

AWS PCS 接受没有匹配Gres条目的记录。资源存在于节点上,但任务无法请求它。添加该Gres条目以使其可调度。

重要

AWS PCS 会验证您的记录的语法及其与Gres设置的一致性。它不会对照硬件对它们进行验证。如果记录的FileCores、或Links布局与启动节点上的设备不匹配,则会导致节点耗尽。这同样适用于 MIG:您在中声明的配置文件Gres必须与节点上配置的配置文件相匹配。有关诊断已耗尽节点的更多信息,请参阅。对中的无效节点注册 (INVALID_REG) 进行故障排除 AWS 个