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

32 lines
5.2 KiB
Markdown

# P25-A. Ray: динамические графы задач
- **Версия и дата проверки:** 1.1, 07.09.2026.
- **Статус:** готово к назначению.
## Статья и исходные материалы
- **Основная статья:** Philipp Moritz и соавт. — [Ray: A Distributed Framework for Emerging AI Applications](https://www.usenix.org/conference/osdi18/presentation/moritz). OSDI 2018.
- **Кратко о статье:** Приложения машинного обучения сочетают динамические графы коротких задач с долгоживущим изменяемым состоянием, которое неудобно выражать в традиционных пакетных системах. Ray объединяет удалённые функции и акторы в одном распределённом движке с масштабируемым планированием и восстановлением. В этом проекте исследуются накладные расходы и масштабирование динамических графов задач.
- **Почему результат актуален:** Ray объединяет задачи и акторы в одном распределённом runtime, рассчитанном на динамические графы вычислений, возникающие в обучении с подкреплением и других ИИ-приложениях.
- **Артефакты и данные:** [ray-project/ray](https://github.com/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.