本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon SageMaker HyperPod 任务管理中使用帮派计划
在分布式机器学习训练中,一项作业通常需要多个 pod 在节点之间并行运行,并通过 pod 到 Pod 通信。 HyperPod 任务治理使用 Kueue 的waitForPodsReady功能来实现帮派调度。启用后,Kueue 将监控工作负载,直到其所有 pod 都准备就绪,这意味着已调度、正在运行并通过可选的就绪探测器。如果工作负载的所有 Pod 在配置的超时时间内未准备就绪,则该工作负载将被逐出并重新排队。
帮派安排具有以下好处:
-
防止资源浪费 — 如果所有 Pod 都未准备就绪,Kueue 会驱逐工作负载并重新排队,从而确保部分运行的工作负载不会无限期地保留资源。
-
避免死锁-防止作业持有部分资源并无限期地相互阻塞。
-
自动恢复 — 如果 pod 在超时时间内未准备就绪,则会使用可配置的指数退避来驱逐工作负载并重新排队,而不是无限期地挂起。
激活帮派计划
要激活帮派计划,你必须有一个安装了任务管理 HyperPod Amazon EKS 附加组件的 Amazon EKS 集群。插件状态必须为Active或Degraded。
注意
也可以kubectl通过编辑集群上的 Kueue 配置来直接配置群组调度。
激活帮派计划(SageMaker AI 控制台)
-
打开 Amazon SageMaker AI 控制台
并导航到您的 HyperPod 集群。 -
选择 “策略管理” 选项卡。
-
在 “任务管理” 部分,打开 “操作”,然后选择 “配置群组调度”。
-
开启帮派排程并配置设置。
-
选择保存。Kueue 控制器将重新启动以应用更改。
帮派调度配置设置
下表描述了群组调度的配置设置。
| 设置 | 说明 | 默认 |
|---|---|---|
timeout |
Kueue 在驱逐和重新排队工作负载之前等待所有 pod 准备就绪多长时间。 | 5m |
recoveryTimeout |
Kueue 在节点出现故障后等待 Pod 恢复多长时间后才重新排队工作负载。设置0s为禁用。timeout如果未设置,则默认为的值。 |
5m |
blockAdmission |
启用后,将按顺序允许工作负载。在当前工作负载的所有 pod 都准备就绪之前,不允许任何新的工作负载。防止资源受限的群集出现死锁。 | 关 |
requeuingStrategy timestamp |
requeue 顺序是使用Creation(原始提交时间,保留队列位置)还是Eviction(上次驱逐的时间,有效地降低了反复失败的作业的优先级)。 |
驱逐 |
requeuingStrategy backoffLimitCount |
Kueue 永久停用工作负载之前的最大重排尝试次数。留空可无限次重试。 | 无限制 |
requeuingStrategy backoffBaseSeconds |
每次连续超时后重新排队工作负载时指数退避的基本时间(以秒为单位)。指数为 2。 | 60s |
requeuingStrategy backoffMaxSeconds |
限制指数退避延迟。到达后,Kueue 将继续按此固定间隔重新排队。 | 3600s |
注意
修改帮派调度设置会重新启动 Kueue 控制器,这可能会暂时延迟任务准入。无论您是启用、禁用还是更新任何值,这都适用。正在运行的作业不会中断。
注意
帮派调度是集群范围的。它适用于集群上的所有 Kueue-managed 工作负载,而不仅仅是特定的团队或队列。