Ai2 убрала бесплатный HIGH priority: бюджеты GPU-времени и fair-share

На кластерах Allen Institute for AI одновременно крутятся тысячи NVIDIA H100, B200 и B300 — от 88 до 1024 GPU на кластер, около 150 исследователей, а по заявкам в очереди в 2–3 раза больше железа, чем доступно. Команда заменила приоритетный планировщик на бюджеты GPU-времени, иерархический fair-share и «контракт» с минимальным временем работы job.
Раньше почти все ставили HIGH priority, часть ворклоадов могла отказаться от вытеснения, а дежурные on-call тратили смены на ручное выключение долгих задач перед ремонтом хостов. Пустые процессы держали слот на GPU — отладку через старую очередь не успевали запустить с нужной задержкой.
Бюджеты вместо бесплатного приоритета
Лидерство заранее делит долю GPU-времени по дереву программ: у листового проекта A1 в примере Ai2 гарантированные 35% ёмкости, независимо от чужих очередей. Защищённый запуск списывается с бюджета команды — удержание GPU без реальной нагрузки жжёт ту же квоту, что полезный тренинг.
Fair-share за неделю
Планировщик смотрит занятость в скользящем окне (по умолчанию 7 дней) и поднимает ворклоады из недоиспользованных долей выше перегруженных — та же идея, что в Hadoop Fair Scheduler 2009 года и в SLURM Fair Tree сегодня, только веса задают бюджеты менеджеров, а не статичные квоты.
Есть allocated occupancy: время идёт в бюджет и защищено на minimum runtime. Есть unallocated: без списания, без защиты — можно вытеснить, но кластер не простаивает. Chris Clark в материале описывает эффект как «лишние 30%» compute: простой в одном окне можно отыграть всплеском позже.
Контракт при сабмите
Недельные distributed training job ломали баланс: чужой бюджет не получал слот. Теперь при отправке указывают minimum runtime и признак resumable — короткий гарантированный отрезок защищён от preemption, дальше fair-share может вытеснить и вернуть задачу в очередь. Minimum runtime = 0: job не списывается с бюджета, но всегда уязвим к вытеснению; по достижении минимума ворклоады можно автоматически снимать с хостов под ремонт.
Метрики кластера у Ai2 выстроены пирамидой — availability и occupancy внизу, impact (какие workload получают железо) и utilization наверху. Пост как раз про рост impact без потери заполненности GPU.
Источник: Impactful scheduling for GPU clusters.