互动空间的任务管理 HyperPod - 亚马逊 SageMaker AI

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

互动空间的任务管理 HyperPod

本节介绍如何针对交互空间工作负载优化共享的 SageMaker HyperPod Amazon EKS 集群。您将学习配置 Kueue 的任务管理功能(包括配额管理、优先级调度和资源共享策略),以确保您的开发工作负载不受干扰地运行,同时在团队的培训、评估和批处理活动中保持公平分配。

互动空间管理的工作原理

要有效管理共享 E HyperPod KS 集群中的交互空间,请使用 Kueue 的现有功能实施以下任务治理策略。

优先级类配置

为具有高权重(例如 100)的 Interactive Spaces 定义专用的优先级类,以确保开发窗格在其他任务类型之前被允许和调度。此配置使 Interactive Spaces 能够在集群加载期间抢占优先级较低的作业,这对于维持不间断的开发工作流程至关重要。

配额大小调整和分配

在团队中预留足够的计算资源 ClusterQueue 来处理预期的开发工作负载。在开发资源闲置期间,可以将未使用的配额资源临时分配给其他团队的任务。当开发需求增加时,可以回收这些借用的资源,以优先考虑待处理的 Interactive Space pods。

资源共享策略

根据您的要求,在以下两种配额共享方法中进行选择:

严格的资源控制:禁用配额借出和借用,以保证您的交互空间始终可以使用预留的计算容量。这种方法需要调整足够大的配额,以独立处理高峰开发需求,并且可能会导致节点在使用率低的时段处于空闲状态。

灵活的资源共享:启用配额贷款,允许其他团队在需要时利用闲置的开发资源。但是,请禁用借用,以确保 Interactive Spaces 永远不会使用可能导致意外驱逐的借用、可回收的资源运行。

团队内抢占

在相同配额下运行混合工作负载(训练、评估和交互空间)时,启用团队内部抢占权。这允许 Kueue 抢占团队中优先级较低的作业,以容纳高优先级的 Interactive Space Pod,从而确保开发工作可以在不依赖外部配额借用的情况下继续进行。

互动空间设置示例

以下示例显示 Kueue 如何在共享的 Ama SageMaker HyperPod zon 集群中管理交互空间的计算资源。

集群配置和策略设置

您的集群具有以下配置:

  • Alpha 团队(开发团队):互动空间配额为 8 个 CPU

  • 团队测试版(机器学习小组):16 个 CPU 配额用于训练和评估

  • Gamma 团队(研究):6 个 CPU 配额用于实验

  • 静态预调配:不自动扩缩

  • 总容量:30 CPUs

共享 CPU 池使用以下优先级策略:

  • 互动空间:优先级 100

  • 训练:优先级 75

  • 评估:优先级 50

  • 批处理:优先级 25

Kueue 强制执行团队配额和优先等级,同时为开发团队启用抢占并禁用借用。

初始状态:集群利用率正常

正常运行期间:

  • Alpha 队伍:使用 6 CPUs、2 个空 CPUs 闲时间运行 6 个互动空间

  • 团队测试版:在 16 个 CPU 配额内运行训练作业 (12 CPUs CPUs) 和评估 (4)

  • Tea@@ m Gamma:在所有 6 个上运行研究工作负载 CPUs

  • 资源共享:Team Beta 借用 Alpha 队伍的 2 个空闲时间 CPUs 进行额外训练

开发高峰:Alpha 团队需要额外资源

当 Team Alpha 的开发者需要扩大开发工作规模时,额外的 Interactive Space 吊舱需要另外 4 个 CPUs。Kueue 检测到新的容器组(pod):

  • 在 Alpha 队的命名空间内

  • 优先级 100(互动空间)

  • 因配额限制,处于待接纳状态

Kueue 的响应流程

Kueue 遵循三步流程来分配资源:

  1. 配额检查

    问题:Alpha 队有未使用的配额吗?

    • 当前使用量:6 个 CPUs 已使用,2 个 CPUs 可用

    • 新要求: CPUs需要 4 个

    • 结果:配额不足 → 继续执行步骤 2

  2. Alpha 队伍中的自我抢占权

    问题:优先级较低的 Team Alpha 任务能否被抢占?

    • 可用目标:Al pha 队伍中没有优先级较低的任务

    • 结果:无法抢占 → 继续执行步骤 3

  3. 回收借来的资源

    问题:Alpha 团队的资源是否被其他队伍借用?

    • 借用资源:使用来 CPUs 自 Alpha 队伍的 2 的团队测试版

    • 行动:Kueue 驱逐了 Team Beta 借来的训练舱,释放了 2 个 CPUs

    • 剩余需求:还需要 2 个 CPUs → 互动空间在资源可用之前保持 NotAdmitted 状态

这种方法优先考虑交互空间,同时保持团队配额界限,防止开发工作在不稳定的借用资源上运行。