

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

# 在 Amazon SageMaker HyperPod 任务管理中使用帮派调度
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-gang-scheduling"></a>

在分布式机器学习训练中，一项作业通常需要多个 pod 在节点之间并行运行，并通过 pod 到 Pod 通信。 HyperPod 任务治理使用 Kueue 的`waitForPodsReady`功能来实现帮派调度。启用后，Kueue 将监视工作负载，直到其所有 pod 都准备就绪，这意味着已调度、正在运行并通过可选的就绪探测器。如果工作负载的所有 Pod 在配置的超时时间内未准备就绪，则该工作负载将被逐出并重新排队。

帮派日程安排具有以下好处：
+ **防止资源浪费** — 如果所有 Pod 都未准备就绪，Kueue 会驱逐工作负载并重新排队，从而确保部分运行的工作负载不会无限期地保留资源。
+ **避免死锁**-防止作业持有部分资源并无限期地相互阻塞。
+ **自动恢复** — 如果 pod 在超时时间内未准备就绪，则会使用可配置的指数退避来驱逐工作负载并重新排队，而不是无限期地挂起。

## 激活帮派计划
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-gang-scheduling-activate"></a>

要激活帮派计划，你必须有一个安装了任务管理 HyperPod Amazon EKS 附加组件的 Amazon EKS 集群。插件状态必须为`Active`或`Degraded`。

**注意**  
也可以`kubectl`通过编辑集群上的 Kueue 配置来直接配置群组调度。

**激活帮派计划（SageMaker AI 控制台）**

1. 打开 [Amazon SageMaker AI 控制台](https://console.aws.amazon.com/sagemaker/)并导航到您的 HyperPod 集群。

1. 选择 “**策略管理**” 选项卡。

1. 在 “**任务管理**” 部分，打开 “**操作**”，然后选择 “**配置群组调度**”。

1. 开启帮派排程并配置设置。

1. 选择**保存**。Kueue 控制器将重新启动以应用更改。

## 帮派调度配置设置
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-gang-scheduling-settings"></a>

下表描述了群组调度的配置设置。


| 设置 | 说明 | 默认 | 
| --- | --- | --- | 
| 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 工作负载，而不仅仅是特定的团队或队列。