# P30. Pollux: совместная адаптация обучения и кластерного планировщика - **Версия и дата проверки:** 1.1, 07.09.2026. - **Статус:** готово к назначению. ## Статья и исходные материалы - **Основная статья:** Aurick Qiao и соавт. — [Pollux: Co-adaptive Cluster Scheduling for Goodput-Optimized Deep Learning](https://www.usenix.org/conference/osdi21/presentation/qiao). OSDI 2021, Best Paper. - **Кратко о статье:** Скорость обучения зависит от числа выделенных ускорителей и размера пакета. Размер пакета меняет системную производительность и статистическую эффективность оптимизации. Pollux объединяет эти факторы в метрике goodput и совместно адаптирует конфигурацию задания и распределение ресурсов кластера. В проекте такая политика сравнивается с планированием только по throughput на симуляции CPU. - **Почему результат актуален:** ветка AdaptDL в основном сохранилась как снимок статьи, но совместная оптимизация размещения и goodput получила прямое развитие в [Sia](https://shouxulin.github.io/pubs/sia.pdf), учитывающей неоднородные кластеры. Базовый проект использует Pollux как понятный исходный механизм и сравнивает его с современным продолжением постановки. - **Артефакты и данные:** ветка [petuum/adaptdl для OSDI 2021](https://github.com/petuum/adaptdl/tree/osdi21-artifact) под Apache-2.0 содержит реализацию и дискретный симулятор кластера. Зафиксированные ревизии: `petuum/adaptdl@542e123e50e9` (Apache-2.0). - **Что уже предоставляет артефакт:** Закреплённая версия AdaptDL предоставляет планировщик заданий и библиотеку адаптивного обучения. Код и опубликованные профили можно использовать как основу упрощённого Pollux и для сопоставления; обязательный исполнитель малых CPU-задач создаёт команда. ## Обязательный результат - **Проверяемый вопрос или утверждение:** совместный учёт системной скорости и статистической эффективности обучения позволяет перераспределять ресурсы с меньшим средним временем завершения, сохраняя справедливость между задачами. - **Технический результат:** Создать исполнитель нескольких малых CPU-задач обучения как реальных процессов и три планировщика: фиксированный, простой динамический и упрощённый Pollux с изменением параллелизма и размера пакета. Добавить единый журнал событий, проверку завершения задач и расчёт goodput, JCT и справедливости. - **Обязательное приращение команды:** Создать предусмотренный исполнитель реальных малых CPU-задач, фиксированный и простой динамический baselines и упрощённый Pollux. Самостоятельно связать изменение параллелизма и пакета с журналом, проверкой завершения и измерением goodput, JCT и справедливости; одних готовых имитационных серий недостаточно. - **Эксперимент:** на нескольких наборах одновременно выполняющихся задач сравнить фиксированное распределение, простую динамическую политику и упрощённый Pollux, измеряя goodput, JCT и справедливость. - **Границы выводов:** сравнение относится к малым CPU-задачам, упрощённой модели goodput и выбранным политикам; оно не подтверждает статистическую эффективность и время завершения много-GPU-обучения в производственном кластере. - **Ресурсный профиль:** локально, CPU, 8–16 ГБ памяти; достаточно малых моделей и наборов данных, поэтому несколько реальных задач входят в обязательную часть. Синтетические профили используются для калибровки и расширения масштаба; при несовместимости артефакта планировщик реализуется независимо. ## Содержательные направления - профили и модель прогресса. - планировщики и симулятор. - справедливость, чувствительность и новая целевая функция. ## Возможное продолжение Добавить неоднородные ускорители, ошибку профиля, стоимость перераспределения, приоритеты либо новую цель, объединяющую JCT и справедливость.