本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
HyperPod 上互動式空間的任務控管
本節說明如何針對互動式空間工作負載最佳化共用的 Amazon SageMaker HyperPod EKS 叢集。您將學習如何設定 Kueue 的任務控管功能,包括配額管理、優先順序排程和資源共用政策,以確保您的開發工作負載在執行時不會中斷,同時維持團隊訓練、評估和批次處理活動的公平分配。
互動式空間管理的運作方式
若要有效管理共用 HyperPod EKS 叢集中的互動式空間,請使用 Kueue 的現有功能實作下列任務控管策略。
優先順序類別組態
為具有高權重 (例如 100) 的互動式空間定義專用優先順序類別,以確保在其他任務類型之前認可和排程開發 Pod。此組態可讓互動式空間在叢集載入期間先佔較低優先順序的任務,這對於維護不間斷的開發工作流程至關重要。
配額大小和配置
在團隊的 ClusterQueue 中預留足夠的運算資源,以處理預期的開發工作負載。在開發資源閒置期間,未使用的配額資源可以暫時分配給其他團隊的任務。當開發需求增加時,可以回收這些借用的資源,以優先考慮待定的互動式空間 Pod。
資源共用策略
根據您的要求,在兩種配額共用方法之間進行選擇:
嚴格資源控制:停用配額貸款和借用,以確保您的互動式空間隨時可使用預留運算容量。此方法需要夠大的配額大小,才能獨立處理尖峰開發需求,並可能在低用量期間導致閒置節點。
彈性資源共享:啟用配額貸款,以允許其他團隊在需要時利用閒置開發資源。不過,請停用借用,以確保互動式空間永遠不會在借用、可回收的資源上執行,這可能會導致非預期的移出。
團隊內先佔
在相同配額下執行混合工作負載 (訓練、評估和互動式空間) 時,啟用團隊內先佔。這可讓 Kueue 在您的團隊中先佔較低優先順序的任務,以容納高優先順序的互動式空間 Pod,確保開發工作可以繼續進行,而不需要根據外部配額借用。
互動式空間設定範例
下列範例顯示 Kueue 如何管理共用 Amazon SageMaker HyperPod 叢集中互動式空間的運算資源。
叢集組態和政策設定
您的叢集具有下列組態:
-
Team Alpha (開發團隊):互動式空間的 8 個 CPU 配額
-
團隊 Beta 版 (ML 團隊):用於訓練和評估的 16 個 CPU 配額
-
Team Gamma (研究):實驗用 6 個 CPU 配額
-
靜態佈建:無自動擴展
-
總容量:30 CPUs
共用 CPU 集區使用此優先順序政策:
-
互動式空間:Priority 100
-
訓練:優先順序 75
-
評估:優先順序 50
-
批次處理:優先順序 25
Kueue 會強制執行團隊配額和優先順序類別,啟用先佔並為開發團隊停用借用。
初始狀態:正常叢集使用率
在正常操作中:
-
團隊 Alpha:使用 6 個 CPUs 執行 6 個互動式空間,2 個 CPUs 閒置
-
團隊 Beta 版:在其 16 CPUs 配額內執行訓練任務 (12 CPUs) 和評估 (4 個 CPU)
-
團隊 Gamma:在所有 6 CPUs 上執行研究工作負載
-
資源共用:Team Beta 借用 Team Alpha 的 2 個閒置 CPUs進行額外訓練
開發高峰:Team Alpha 需要額外的資源
當 Team Alpha 的開發人員需要擴展開發工作時,額外的互動式空間 Pod 需要額外 4 CPUs。Kueue 偵測到新 Pod:
-
在 Team Alpha 的命名空間內
-
Priority 100 (互動式空間)
-
由於配額限制條件而等待接納
Kueue 的回應程序
Kueue 遵循三步驟程序來分配資源:
-
配額檢查
問題:團隊 Alpha 是否有未使用的配額?
-
目前用量:使用的 6 CPUs、可用的 2 CPUs
-
新需求:需要 4 CPUs
-
結果:配額不足 → 繼續步驟 2
-
-
Team Alpha 中的自我先佔
問題:低優先順序團隊 Alpha 任務是否可以先佔?
-
可用的目標:Team Alpha 中沒有較低優先順序的任務
-
結果:無法先佔 → 繼續步驟 3
-
-
回收借用的資源
問題:團隊 Alpha 資源是否由其他團隊借用?
-
借用的資源:使用 Team Alpha 的 2 個 CPUs Team Beta
-
動作:Kueue 移出 Team Beta 的借用訓練 Pod,釋放 2 CPUs
-
剩餘需求:仍然需要 2 個 CPUs → 互動式空間保持 NotAdmitted 狀態,直到資源可用為止
-
此方法優先考慮互動式空間,同時維持團隊配額界限,並防止開發工作在不穩定的借用資源上執行。