本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
互动空间的任务管理 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 遵循三步流程来分配资源:
-
配额检查
问题:Alpha 队有未使用的配额吗?
-
当前使用量:6 个 CPUs 已使用,2 个 CPUs 可用
-
新要求: CPUs需要 4 个
-
结果:配额不足 → 继续执行步骤 2
-
-
Alpha 队伍中的自我抢占权
问题:优先级较低的 Team Alpha 任务能否被抢占?
-
可用目标:Al pha 队伍中没有优先级较低的任务
-
结果:无法抢占 → 继续执行步骤 3
-
-
回收借来的资源
问题:Alpha 团队的资源是否被其他队伍借用?
-
借用资源:使用来 CPUs 自 Alpha 队伍的 2 的团队测试版
-
行动:Kueue 驱逐了 Team Beta 借来的训练舱,释放了 2 个 CPUs
-
剩余需求:还需要 2 个 CPUs → 互动空间在资源可用之前保持 NotAdmitted 状态
-
这种方法优先考虑交互空间,同时保持团队配额界限,防止开发工作在不稳定的借用资源上运行。