[Paper] 랭크 인식 리소스 스케줄링: 쿠버네티스에서의 밀접 결합 MPI 워크로드
Source: arXiv - 2603.22691v1
개요
이 논문은 Kubernetes에서 실행되는 MPI 애플리케이션을 위한 랭크 인식 리소스 스케줄링을 소개합니다. 각 MPI 랭크에 해당 서브도메인의 계산 부하에 맞는 CPU 요청을 가진 파드를 할당함으로써, 저자들은 클라우드 기반 CFD 시뮬레이션이 더 빠르게 실행될 수 있으며, 예약된 CPU 수를 크게 줄일 수 있음을 보여줍니다—이는 공유 컨테이너 오케스트레이션 HPC 워크로드를 관리하는 모든 사람에게 매력적인 이점입니다.
주요 기여
- MPI 랭크당 비례 CPU 요청 – 파드가 처리하는 메쉬 셀 수에 비례하여 CPU를 요청하고, 일괄 할당을 사용하지 않음.
- 인플레이스 파드 수직 스케일링 – Kubernetes v1.35의 GA 기능을 활용해 MPI 작업을 재시작하지 않고 파드의 CPU 요청을 실시간으로 조정.
- AWS에서의 실증 평가 – c5.xlarge 인스턴스에서 CFD 워크로드(101 K‑cell 메시)를 실행, 동일‑CPU, Scotch‑기반, 비례 할당을 비교.
- 오픈‑소스 아티팩트 – 모든 스크립트, Helm 차트, 벤치마크 데이터가 공개되어 재현성 및 빠른 도입을 가능하게 함.
방법론
-
Domain Decomposition – CFD 메시는 서브‑도메인(각 MPI 랭크당 하나)으로 분할됩니다. 서브‑도메인당 셀 수가 달라 “heavy”(무거운)와 “light”(가벼운) 랭크가 생성됩니다.
-
Pod‑per‑Rank Mapping – 각 랭크는 자체 Kubernetes pod에서 실행됩니다. pod의
cpu요청은 다음과 같이 설정됩니다cpu: (cells_in_rank / total_cells) * total_requested_cpus -
Scheduling Policy – Kubernetes 스케줄러는 CPU 요청(하드 제한이 아님)을 기준으로 pod를 배치합니다. 이를 통해 가벼운 랭크는 실제로 필요한 CPU만 예약하므로 클러스터가 노드에 더 많은 pod를 배치할 수 있습니다.
-
Vertical Scaling – 시뮬레이션 중간에, 저자들은
kubectlscale서브 커맨드를 사용해 pod의 CPU 요청을 늘리거나 줄입니다. pod의 컨테이너가 burstable이기 때문에 커널의 CFS 대역폭 컨트롤러가 호출되지 않아 스로틀링을 방지합니다. -
Benchmark Suite – AWS EC2 c5.xlarge 노드(4‑16 랭크)에서 표준 CFD 솔버(CFD‑MPI)를 실행합니다. 측정 항목에는 실제 경과 시간, CPU 사용률, 각 노드에 남은 “headroom”(사용되지 않은 vCPU) 등이 포함됩니다.
Source: …
결과 및 발견
| 시나리오 | 실제 경과 시간 (비율) | 확보된 CPU 여유 |
|---|---|---|
| Equal‑CPU (baseline) | 1.00× | – |
| Scotch‑based equal‑CPU | 0.81× (19 % 빠름) | – |
| Proportional CPU (no limits) | 0.78× (22 % 빠름) | 4‑노드 클러스터당 6.5 vCPU (경량 랭크에 대한 여유 CPU ≈ 82 % 감소) |
| Hard CPU limits (CFS throttling) | 78× 느림 (재앙적) | – |
핵심 요약
- 하드 제한은 MPI 집합 연산에 악몽이다. Linux CFS 대역폭 컨트롤러가
MPI_Allreduce장벽에서 멈추면서 실행 시간이 수십 배 늘어난다. - 요청 전용 할당(하드 제한 없음)은 스로틀링을 없애면서도 스케줄러가 파드를 효율적으로 배치할 수 있는 충분한 정보를 제공한다.
- 비례 할당은 Scotch 기반보다 약간(≈ 3 %) 일관된 성능 향상을 제공하고, 낭비된 CPU 예약을 크게 줄여 다른 워크로드를 위한 용량을 확보한다.
Practical Implications
- Higher cluster utilisation – 클러스터 활용도 향상 – 클라우드 운영자는 동일한 인스턴스 집합에서 더 많은 MPI 작업을 실행할 수 있어 시뮬레이션당 비용을 낮출 수 있습니다.
- Dynamic scaling without downtime – 다운타임 없는 동적 스케일링 – 인‑플레이스 수직 스케일링을 통해 로드 불균형(예: 적응형 메쉬 정밀화)에 대해 전체 MPI 작업을 재시작하지 않고 대응할 수 있어 생산성이 크게 향상됩니다.
- Simplified resource budgeting – 리소스 예산 간소화 – 개발자는 이제 모든 랭크를 최악의 경우에 맞춰 과다 프로비저닝할 필요가 없으며, CPU requests를 통해 실제 필요량을 명시하고 Kubernetes가 자동으로 배치하도록 할 수 있습니다.
- Portable to other container orchestrators – 다른 컨테이너 오케스트레이터로 이식 가능 – 랭크‑인식 요청 개념은 리소스 requests를 존중하는 모든 스케줄러(예: Nomad, Slurm의
--cpu-per-task)에 직접 매핑됩니다. - Open‑source tooling – 오픈소스 도구 – 제공된 Helm 차트와 스크립트를 기존 CI/CD 파이프라인에 삽입하면 Kubernetes 클러스터에서 MPI 워크로드를 자동으로 배포할 수 있습니다.
제한 사항 및 향후 작업
- 연구는 특정 인스턴스 유형(c5.xlarge)에서 CPU‑bound CFD 워크로드에만 제한됩니다. 메모리 집약적이거나 GPU 가속 MPI 코드는 다른 스케일링 특성을 보일 수 있습니다.
- Network topology가 변하지 않았으며; 모든 실험은 평탄한 AWS VPC에서 실행되었습니다. 향후 작업에서는 영역 간 파드 배치 또는 다른 CNI 플러그인을 사용했을 때 집합 통신 지연에 어떤 영향을 미치는지 탐구할 수 있습니다.
- 저자들은 burstable pods가 CFS 스로틀링을 방지하는 데 필수적이라고 언급했습니다; 하드 제한을 적용하는 환경(예: 엄격한 다중 테넌트 클러스터)에서는 추가적인 보호 조치가 필요합니다.
- 접근 방식을 heterogeneous resources(예: 랭크당 CPU와 GPU 파드를 혼합)로 확장하고 Kubernetes autoscalers와 통합하는 것이 유망한 다음 단계입니다.
저자
- Tianfang Xie
논문 정보
- arXiv ID: 2603.22691v1
- 카테고리: cs.DC
- 출판일: 2026년 3월 24일
- PDF: PDF 다운로드