Ai2가 10월 9일 보고서에서 GPU 클러스터 스케줄러 교체 결과를 공개했다. 우선순위 기반 스케줄러를 GPU 시간 예산, 계층형 공정 배분(fair-share), 시간 분할 계약으로 바꾼 구조다.

7월 말부터 클러스터별로 도입했고, 보고된 30일 동안 팀이 받아야 할 GPU 시간의 98%가 실제로 전달됐다. 받아야 할 시간은 시간 단위로 실제 수요를 상한으로 둔 배정량이다.

클러스터 점유율은 변경 전후 모두 98%였다. 독립 벤치마크가 아니라 운영자가 보고한 관측치다.

출발점은 기존 방식의 병목이었다. 수요가 공급의 2~3배인 상황에서 비용 없는 HIGH 우선순위가 결국 전체 작업의 100%로 번졌고, 일부 사용자는 빈 작업으로 GPU를 붙잡아 두었다.

장비 대신 시간을 나누는 계층형 공정 배분

Ai2의 해법은 팀에 GPU를 나눠주는 대신 GPU 시간의 몫을 배정하는 것이다. 관리자가 프로젝트와 연구자에게 비율로 예산을 나누고, 스케줄러는 기본 7일의 슬라이딩 조회 구간에서 점유를 추적한다.

배정보다 덜 쓴 그룹의 작업이 더 많이 쓴 그룹보다 앞에 정렬된다. 시간 예산은 일정 구간의 사용 권리이며 같은 장비를 계속 예약하는 개념이 아니다.

알고리즘 자체는 새롭지 않다고 Ai2도 밝혔다. Slurm의 Fair Tree는 계정 트리에서 같은 부모 아래 형제 항목끼리 배정 몫과 사용량을 비교한다.

Ai2는 이 계보를 언급했을 뿐이며, 자사 스케줄러가 Slurm 구현을 실행한다는 근거는 없다.

최소 실행 시간 계약과 선점 경계

작업은 제출할 때 의미 있는 진척에 필요한 최소 실행 시간을 선언하고, 그동안 선점에서 보호된다. Ai2가 정한 보호 상한은 8시간이다.

보호 구간이 끝나면 재개 가능한 작업은 자동으로 다시 대기열에 들어간다. 최소 시간을 0으로 두면 예산에 청구되지 않는 미배정 시간이 되고, 처음부터 선점 대상이다.

이 계약 덕분에 결함 있는 호스트도 작업이 최소 실행 시간에 닿으면 자동으로 비워졌다. Ai2는 사람이 개입해야 하는 수리가 74% 줄었다고 보고했다.

반면 휘발성 대화형 세션은 8시간 보호 이후 선점되면 상태를 손으로 다시 만들어야 했다. Ai2는 가장 큰 작업의 대기를 늘릴 수 있는 용량 단편화도 조사 중이다.

보호 구간 길이와 재시작 비용의 맞교환

결국 설계 문제는 복구 가능한 작업 단위를 얼마로 잡느냐다. 보호 구간이 짧으면 재배분 기회는 늘지만, 재시작마다 진척을 버린다면 그 기회의 가치는 줄어든다.

긴 구간은 작업에 진척할 여유를 주는 대신 같은 장비를 기다리는 다른 작업을 늦춘다. 점유율 숫자만으로 어느 쪽이 맞는지 고르기는 어려워 보인다.

시범 운영이라면 대기 시간 옆에 체크포인트 소요 시간, 재시작 시간, 중단으로 잃은 작업을 함께 기록하는 방식이 현실적이다. 대화형 작업과 재개 가능한 작업을 나눠 집계할 때 비교가 성립한다.

선점 사유를 운영 지표로 확인하는 방법

Ai2 보고서는 확인용 명령어나 설정 키를 공개하지 않았다. 그래서 점검은 운영 지표 수준에 머문다.

비슷한 정책이라면 그룹별 배정 대비 전달 시간, 작업이 선점 가능해진 시점, 청구된 예산을 한 화면에서 볼 수 있는지가 첫 점검 대상으로 보인다.

예산을 누가 배정하고 부족한 몫에 어떻게 이의를 제기하는지도 같은 무게의 문제다. 공식이 투명해도 배정 결정이 불투명하면 운영상의 신뢰는 생기기 어렵다.

98%가 말해주지 않는 것

세 가지 질문은 따로 떨어진다. 가용 하드웨어가 배정됐는지, 각 그룹이 받아야 할 시간을 받았는지, 그 시간이 유용한 계산으로 이어졌는지다.

점유율은 첫째를, 수요로 상한을 둔 이행률은 둘째를 다룬다. 어느 것도 셋째를 입증하지 않으며, 이 글은 Ai2의 스케줄러나 시뮬레이션을 재현하지 않았다.

클러스터가 꽉 찼다는 사실보다 선점 뒤에도 남는 진척이 이 스케줄러의 실제 성적표다.