Ai2의 영향력 있는 스케줄링: GPU 시간 예산 및 계층적 공정 배분
TL;DR
Ai2는 기존의 우선순위 기반 GPU 스케줄러를 예산 중심의 계층적 공정 배분 시스템으로 교체했습니다. 이를 통해 영향력에 맞춘 GPU 시간 할당을 보장하고, 디버그 작업의 대기 시간을 수 시간에서 수 초로 단축했으며, 클러스터 점유율 98%를 유지하면서 온콜(on-call) 업무 부담을 74% 줄였습니다.
대규모 스케줄링 문제
- Ai2는 LLM, VLM, RL 및 과학적 워크로드를 수행하는 약 150명의 연구원을 위해 NVIDIA H100, B200, B300 카드로 구성된 88~1024개 GPU 클러스터를 운영합니다.
- 수요가 공급을 항상 2
3배 초과하므로, 각 GPU 시간은 23개의 서로 다른 작업과 경쟁해야 합니다. - 기존의 우선순위 기반 스케줄러는 다음과 같은 문제를 야기했습니다:
- GPU 점유(Squatting) – 사용자들이 용량을 확보하기 위해 아무 작업도 하지 않는(no-op) 작업을 실행해 둠.
- 우선순위 인플레이션 – 모든 작업이 결국 HIGH 우선순위로 실행되어, 낮은 우선순위의 작업이 고갈됨.
- 높은 온콜 부담 – 엔지니어들이 비정상 호스트에서 선점 불가능한 작업을 종료하기 위해 협상하는 데 대부분의 시간을 소비함.
우선순위에서 예산으로: 핵심 아이디어
- Ai2는 정적인 GPU 독점권을 할당하는 대신, 프로젝트와 연구원에게 GPU 시간 예산을 할당합니다.
- 세 계층(선임 연구원 → 책임 연구원 → 프로그램 관리자/CEO)의 관리자가 전체 용량에 대한 비례적 지분을 설정합니다(예: 프로젝트 A1은 35% 할당).
- 모든 워크로드는 예산으로 자금을 조달받아야 하며, 자금이 없는 작업은 미할당으로 간주되어 완전히 선점 가능합니다.
- 이는 스케줄링 논쟁을 임시방편적인 협상이 아닌 투명한 예산 검토 과정으로 전환합니다.
계층적 공정 배분 스케줄러
- 이 스케줄러는 고전적인 계층적 공정 배분(hierarchical fair-share) 알고리즘(Hadoop Fair Scheduler, SLURM Fair Tree, YARN Fair Scheduler에서 유래)을 구현하되, 예산 트리에서 파생된 동적 가중치를 사용합니다.
- 최근 7일간의 슬라이딩 윈도우를 통해 GPU 점유율을 추적하며, 과도하게 사용된 할당보다 미달 사용된 할당을 우선시합니다.
- 두 가지 점유 범주:
- 할당된 점유(Allocated occupancy) – 예산에서 차감되며, 최소 실행 시간 동안 선점으로부터 보호됨.
- 미할당 점유(Unallocated occupancy) – 차감되지 않으며 항상 선점 가능하고, 예산이 유휴 상태일 때 GPU를 계속 가동하는 데 사용됨.
- 시스템은 보호된 최소 실행 시간이 만료되면 자동으로 재개 가능한 작업을 다시 큐에 넣으며, 팀 간의 시분할을 가능하게 합니다.
“새로운 스케줄러 덕분에 30%의 컴퓨팅 자원을 더 확보한 느낌입니다… 할당 한도를 초과해서 사용하더라도 작업이 선점 없이 빠르게 스케줄링되는 것을 볼 수 있습니다.” — Chris Clark
스케줄링 계약: 최소 실행 시간 보장
- 워크로드는 최소 실행 시간(의미 있는 진전을 위해 필요한 가장 짧은 기간)과 재개 가능 여부를 선언합니다.
- 이 기간 동안 작업은 선점으로부터 보호되며, 시간이 만료되면 스케줄러가 작업을 선점하고 다시 큐에 넣을 수 있습니다.
- 최소 실행 시간을 0으로 설정하면 해당 작업은 미할당으로 표시되어 완전히 선점 가능하고 비용이 발생하지 않습니다.
- 이 계약은 두 가지 문제를 해결합니다:
- 장기 실행 작업이 GPU를 독점하는 것을 방지(점유 감소).
- 비정상 호스트의 자동 배출을 허용하여 사람이 개입하는 수리 작업을 74% 감소.
정책 검증을 위한 시뮬레이션 프레임워크
- Ai2는 과거 워크로드 제출 기록을 입력받아 스케줄러 로직을 실행함으로써 대기 시간, 선점, GPU 시간 분배를 예측하는 경량 시뮬레이터를 구축했습니다.
- 시뮬레이션은 8시간의 최대 최소 실행 시간과 같은 핵심 매개변수를 결정하는 데 도움을 주었으며, 디버그 워크로드의 대기 시간이 획기적으로 줄어들 것임을 검증했습니다.
- 수동으로 작성된 디버그 작업 시나리오에서는 예측 대기 시간이 약 6시간에서 5분으로 줄어들 것으로 나타났으며, 실제 배포 결과 약 2시간에서 30초로 단축되었습니다.
배포 후 운영 결과
- 할당 이행: 팀들은 30일 동안 할당받은 GPU 시간의 98%를 제공받았으며, 15개 팀 중 13개 팀이 95% 이상의 이행률을 기록했고, 최악의 경우에도 90%를 기록했습니다.
- 클러스터 점유율: 2~3배의 초과 구독에도 불구하고 98%로 안정적으로 유지되었습니다.
- 미할당 사용량: 제공된 GPU 시간의 18%가 미할당 사용량이었으며, 이는 점유율을 높게 유지하는 완충 역할을 했습니다.
- 큐 대기 시간 개선: 가장 큰 H100 클러스터의 중앙값 대기 시간은 5분에서 24초로 줄었으며, p90 대기 시간은 2.8시간에서 1.8시간으로 감소했습니다.
- 디버그 작업: p90 대기 시간이 2시간에서 30초로 줄어들어 시뮬레이션 기대치를 훨씬 뛰어넘었습니다.
- 온콜 업무: 자동 호스트 배출 기능으로 인해 사람이 개입하는 수리 작업이 74% 감소했습니다.
남은 과제 및 향후 계획
- 학습 곡선: 초기에는 클러스터마다 다른 용어와 동작 방식으로 인해 혼란이 있었으나, 실시간 설명 세션과 업데이트된 시각화 자료를 통해 완화되었습니다.
- 대화형 세션: 시분할은 보호된 실행 시간을 8시간으로 제한하여 긴 개발 세션에서 선점이 발생했습니다. Ai2의 계획:
- 데이터 준비 및 대화형 작업을 위한 CPU 전용 클러스터 배포.
- 체크포인트를 생성하고 CPU 클러스터에서 재개할 수 있는 복원 가능한 세션 구축.
- 용량 파편화: 최소 실행 시간을 보호하면 스케줄러가 많은 작은 작업을 동시에 선점하는 능력이 제한되어, 매우 큰 워크로드의 대기 시간이 늘어날 수 있습니다. 현재 진행 중인 시뮬레이션 연구를 통해 이 효과를 정량화하고 해결할 예정입니다.
향후 전망: 영향력에서 활용도로
- 다음 단계는 **활용도(utilization)**입니다. 부트스트래핑, 체크포인팅, 훈련 코드가 최대한 효율적으로 실행되도록 하여 할당된 GPU 시간의 가치를 극대화하는 것입니다.
- Ai2는 이러한 활용도 문제를 해결하기 위해 엔지니어링 팀에 합류할 협력자를 찾고 있습니다.
이 게시물은 2026년 10월 9일 Allen Institute for AI에서 발행한 공식 Hugging Face 블로그 글 “Impactful scheduling for GPU clusters”를 충실히 요약한 것입니다.