Files
nis2/project-tasks/p25-a-ray-task-graphs.md

5.2 KiB
Raw Permalink Blame History

P25-A. Ray: динамические графы задач

  • Версия и дата проверки: 1.1, 07.09.2026.
  • Статус: готово к назначению.

Статья и исходные материалы

  • Основная статья: Philipp Moritz и соавт. — Ray: A Distributed Framework for Emerging AI Applications. OSDI 2018.
  • Кратко о статье: Приложения машинного обучения сочетают динамические графы коротких задач с долгоживущим изменяемым состоянием, которое неудобно выражать в традиционных пакетных системах. Ray объединяет удалённые функции и акторы в одном распределённом движке с масштабируемым планированием и восстановлением. В этом проекте исследуются накладные расходы и масштабирование динамических графов задач.
  • Почему результат актуален: Ray объединяет задачи и акторы в одном распределённом runtime, рассчитанном на динамические графы вычислений, возникающие в обучении с подкреплением и других ИИ-приложениях.
  • Артефакты и данные: ray-project/ray, открытая система с локальным кластерным режимом и актуальной документацией. Зафиксированные ревизии: ray-project/ray@2ff4d94078ee (Apache-2.0).
  • Что уже предоставляет артефакт: Ray предоставляет исполнение задач, планировщик, object store, локальный кластер и примеры. Их можно использовать как измеряемую среду исполнения.

Обязательный результат

  • Проверяемый вопрос или утверждение: единый динамический движок задач и акторов способен поддерживать высокую частоту коротких задач и сложные зависимые вычисления без специализированного планировщика для каждого приложения.
  • Технический результат: Подготовить локальный кластер Ray, генератор динамических DAG из коротких CPU-задач и сопоставимый baseline на процессном пуле. Добавить трассировку постановки, ожидания и исполнения задач.
  • Обязательное приращение команды: Создать предусмотренный генератор динамических DAG, сопоставимый процессный baseline, общий эталон результатов и трассировку ожидания и исполнения. Провести серии по гранулярности, ширине и глубине графа и объяснить накладные расходы.
  • Эксперимент: Варьировать гранулярность, ширину и глубину графа; сравнить Ray и baseline по времени выполнения, накладным расходам планирования, загрузке CPU и масштабированию. Для каждого режима выполнить не менее трёх серий и проверить равенство результатов.
  • Границы выводов: накладные расходы планирования измеряются для коротких CPU-задач и выбранных DAG на одном компьютере; результат не характеризует многоузловое масштабирование, неоднородные ресурсы и восстановление Ray после отказов.
  • Ресурсный профиль: локально, CPU, 8–16 ГБ памяти; масштаб статьи не воспроизводится, проверяется механизм на одном компьютере с несколькими процессами.

Содержательные направления

  • нагрузки и базовый вариант.
  • инструментирование планировщика и отказы.
  • новая политика и анализ масштабирования.

Возможное продолжение

Реализовать собственную политику размещения, backpressure, locality-aware вариант либо сравнить Ray с простым процессным baseline на том же workload.