

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# HyperPod의 대화형 스페이스에 대한 태스크 거버넌스
<a name="task-governance"></a>

이 섹션에서는 대화형 스페이스 워크로드를 위해 공유 Amazon SageMaker HyperPod EKS 클러스터를 최적화하는 방법을 다룹니다. 할당량 관리, 우선 순위 예약, 리소스 공유 정책 등 Kueue의 태스크 거버넌스 기능을 구성하여 팀의 훈련, 평가 및 배치 처리 활동 전반에 걸쳐 공정한 할당을 유지하면서 개발 워크로드가 중단 없이 실행되도록 하는 방법을 알아봅니다.

## 대화형 스페이스 관리 작동 방식
<a name="task-governance-how"></a>

공유 HyperPod EKS 클러스터에서 대화형 스페이스를 효과적으로 관리하려면 Kueue의 기존 기능을 사용하여 다음 작업 거버넌스 전략을 구현합니다.

**우선순위 클래스 구성**

다른 작업 유형보다 먼저 개발 포드가 승인되고 예약되도록 가중치가 높은 대화형 공간(예: 100)에 대한 전용 우선 순위 클래스를 정의합니다. 이 구성을 통해 Interactive Spaces는 클러스터 로드 중에 우선순위가 낮은 작업을 선점할 수 있으며, 이는 중단 없는 개발 워크플로를 유지하는 데 매우 중요합니다.

**할당량 크기 조정 및 할당**

팀의 ClusterQueue에 충분한 컴퓨팅 리소스를 예약하여 예상 개발 워크로드를 처리합니다. 개발 리소스가 유휴 상태인 기간에는 사용하지 않는 할당량 리소스를 다른 팀의 작업에 일시적으로 할당할 수 있습니다. 개발 수요가 증가하면 이러한 빌린 리소스를 회수하여 보류 중인 대화형 스페이스 포드의 우선순위를 지정할 수 있습니다.

**리소스 공유 전략**

요구 사항에 따라 두 가지 할당량 공유 접근 방식 중에서 선택합니다.

*엄격한 리소스 제어*: 할당량 대여 및 차용을 비활성화하여 대화형 스페이스에 예약 컴퓨팅 용량을 항상 사용할 수 있도록 합니다. 이 접근 방식을 사용하려면 최대 개발 수요를 독립적으로 처리할 수 있을 만큼 큰 크기 할당량이 필요하며 사용량이 적은 기간에는 유휴 노드가 발생할 수 있습니다.

*유연한 리소스 공유*: 할당량 대출을 활성화하여 다른 팀이 필요할 때 유휴 개발 리소스를 활용할 수 있도록 합니다. 그러나 대화형 스페이스가 예기치 않은 제거로 이어질 수 있는 차용되고 회수 가능한 리소스에서 실행되지 않도록 차용을 비활성화합니다.

**팀 내 선점**

동일한 할당량으로 혼합 워크로드(훈련, 평가 및 대화형 공간)를 실행할 때 팀 내 선점을 활성화합니다. 이를 통해 Kueue는 팀 내에서 우선 순위가 낮은 작업을 선점하여 우선 순위가 높은 대화형 스페이스 포드를 수용할 수 있으므로 외부 할당량 차용에 의존하지 않고도 개발 작업을 진행할 수 있습니다.

## 대화형 스페이스 설정 샘플
<a name="task-governance-space-setup"></a>

다음 예제는 Kueue가 공유 Amazon SageMaker HyperPod 클러스터의 대화형 스페이스에 대한 컴퓨팅 리소스를 관리하는 방법을 보여줍니다.

**클러스터 구성 및 정책 설정**

클러스터가 다음과 같이 구성되어 있습니다.
+ *팀 알파(개발 팀)*: 대화형 스페이스에 대한 CPU 할당량 8개
+ *팀 베타(ML 팀)*: 훈련 및 평가를 위한 CPU 할당량 16개
+ *팀 감마(연구)*: 실험을 위한 CPU 할당량 6개
+ *정적 프로비저닝*: 오토 스케일링 없음
+ *총 용량*: CPU 30CPUs

공유 CPU 풀은 다음 우선 순위 정책을 사용합니다.
+ *대화형 공간*: Priority 100
+ *훈련*: 우선순위 75
+ *평가*: 우선순위 50
+ *배치 처리*: 우선 순위 25

Kueue는 개발 팀에 대해 선점 활성화 및 대여 비활성화된 팀 할당량 및 우선 순위 클래스를 적용합니다.

**초기 상태: 정상 클러스터 사용률**

정상 작업의 경우:
+ *팀 알파*: CPU 6개, 유휴 CPUs 2개를 사용하여 대화형 공간 6개를 실행합니다CPUs 
+ *팀 베타*: 16CPUs 할당량 내에서 훈련 작업(12개 CPU) 및 평가(4CPUs CPU)를 실행합니다.
+ *팀 감마*: 6CPUs 모두에서 연구 워크로드를 실행합니다.
+ *리소스 공유*: Team Beta가 추가 훈련을 위해 Team Alpha의 유휴 CPUs 2개를 빌립니다.

**개발 스파이크: Team Alpha에 추가 리소스 필요**

Team Alpha의 개발자가 개발 작업을 확장해야 하는 경우 추가 대화형 스페이스 포드에는 4CPUs가 더 필요합니다. Kueue는 새 포드가 다음과 같음을 감지합니다.
+ Team Alpha의 네임스페이스 내
+ Priority 100(대화형 공간)
+ 할당량 제약으로 인해 허용 보류 중

**Kueue의 응답 프로세스**

Kueue는 3단계 프로세스를 따라 리소스를 할당합니다.

1. **할당량 확인**

   질문: Team Alpha에 미사용 할당량이 있습니까?
   + *현재 사용량*: 사용된 CPUs 6개, 사용 가능한 CPUs 2개
   + *새로운 요구 사항*: CPU 4CPUs 필요
   + *결과*: 할당량 부족 → 2단계로 진행

1. **Team Alpha 내 자체 사용**

   질문: 우선 순위가 낮은 팀 알파 작업을 선점할 수 있나요?
   + *사용 가능한 대상*: Team Alpha에 우선 순위가 낮은 작업 없음
   + *결과*: 선점 불가 → 3단계로 진행

1. **빌린 리소스 회수**

   질문: 다른 팀에서 Team Alpha 리소스를 빌립니까?
   + *차용된 리소스*: Team Alpha에서 2CPUs를 사용하는 Team Beta
   + *조치*: Kueue는 팀 베타가 빌린 훈련 포드를 제거하여 CPU 2CPUs
   + *나머지 요구* 사항: 여전히 2CPUs가 더 필요함 → 대화형 스페이스는 리소스를 사용할 수 있을 때까지 NotAdmitted 상태로 유지됨

이 접근 방식은 팀 할당량 경계를 유지하고 불안정한 대여 리소스에서 개발 작업이 실행되지 않도록 하면서 대화형 공간의 우선순위를 지정합니다.