HPC & GPU Engineering/Platform Essentials

📘 고성능 AI 컴퓨팅 인프라 용어 사전 (6) – Gang Scheduling & Elastic Scheduling

ygtoken 2025. 8. 3. 15:35
728x90

 

앞서 우리는 GPU를 나누는 기술(MIG)까지 살펴봤습니다.

이제는 나눈 GPU들을 언제, 어떻게 동시에 실행할 것인가라는 문제가 남습니다.

 

특히 분산 학습처럼 여러 GPU가 한 덩어리로 묶여 움직이는 워크로드에서는, 단순한 스케줄링 방식으로는 성능이 제대로 나오지 않습니다.

이럴 때 중요한 개념이 바로 Gang SchedulingElastic Scheduling입니다.

 


Gang Scheduling이란?

 

Gang Scheduling은 여러 개의 GPU 리소스가 동시에 확보되어야만 Job을 실행하는 스케줄링 방식입니다.

즉, GPU 4개가 필요한 Job이라면, 4개가 다 준비될 때까지 대기하고, 확보되면 모두 동시에 실행됩니다.

 

  • 동기 실행 보장: 분산 학습에서 필수
  • 부분 실행 방지: 일부 노드만 먼저 실행되어 시간 낭비되는 상황 방지
  • 자원 사용률 희생: 자원을 묶어서 기다리므로 클러스터 전체 사용률은 떨어질 수 있음

 


Elastic Scheduling이란?

 

Elastic Scheduling은 할당 가능한 리소스 양에 따라 Job의 크기를 유연하게 조정하는 방식입니다.

예를 들어 GPU가 8개 필요했던 Job이지만, 현재 4개만 가능하다면 일단 4개로 시작하고, 나중에 자원이 생기면 확장합니다.

 

  • 자원 상황에 유연하게 대응
  • 학습 코드가 Elastic Strategy를 지원해야 함 (예: Elastic Horovod)
  • 추론 서비스, 실험적 학습 작업에 적합

 


비교 요약

항목 Gang Scheduling Elastic Scheduling
실행 조건 모든 자원이 동시에 준비될 때만 실행 자원이 부분적으로 있어도 실행 가능
장점 정확한 병렬 처리 보장, 성능 예측 용이 높은 자원 활용률, 빠른 실험 가능
단점 대기 시간이 길 수 있음 결과 일관성 저하 위험, 코드 유연성 필요
적용 예 GPT 학습, AllReduce 기반 분산 학습 미니 모델 테스트, 튜닝 작업

 


실무 적용 사례

  • Gang Scheduling
    • Kubernetes에서는 Volcano Scheduler, Kube-Batch 등 사용
    • PodGroup을 정의하고, 해당 그룹 전체가 Ready 상태가 될 때까지 대기
    • Slurm에서는 --exclusive, --nodes, --ntasks 옵션 등으로 구현
    • Meta/Google의 대형 학습 파이프라인에 필수
  • Elastic Scheduling
    • Elastic Horovod, DeepSpeed, PyTorch FSDP 등이 지원
    • 클러스터에서 GPU 수가 유동적인 환경(Spot 인스턴스, AutoScaling 등)에 적합
    • 자원 낭비 없이 최대한 활용하고자 할 때 사용

 


스케줄링이 중요한 이유

 

  • 여러 GPU가 필요한 Job을 제때 실행하지 못하면 병렬성이 무너짐
  • 동시에 시작하지 않으면 AllReduce 같은 동기 연산이 꼬여 학습 품질 저하
  • 다중 테넌시 환경에서의 리소스 충돌 최소화를 위해 정교한 스케줄링 필요
  • 스케줄링 정책이 좋지 않으면 GPU가 놀거나, Job이 무한 대기하게 됨

 


마무리

 

Gang Scheduling과 Elastic Scheduling은 단순한 “먼저 오는 작업 먼저 실행”이 아닌,

AI 학습 워크로드의 특성을 반영한 고급 스케줄링 전략입니다.

 

클러스터 운영자는 이 두 전략을 상황에 따라 적절히 혼합 적용하여

모델의 정확도, 자원의 효율성, 전체 비용을 최적화할 수 있어야 합니다.

 

728x90