Проектная магистратура Университета ИТМО

Тестовая система для соревнований алгоритмов планирования

Руководитель от корпоративного партнера: Старичков Н.Ю., 1C
Руководитель от Университета ИТМО: Авксентьева Елена Юрьевна, Университет ИТМО

Открытых вакансий: 2

Подать заявку в этот проект

Краткая аннотация

Разработка тестовой системы для соревнований алгоритмов планирования (Scheduling) в распределенных вычислительных системах Сама по себе задача шедулеров - очень сложная и не имеющая готового “идеального решения”. Разные команды разработчиков и инженеров предлагают собственные алгоритмы шедулинга, обосновывая их преимущества и/или демонстрируя эффективную работу в конкретных обстоятельствах. Также это очень интересная задача для проверки алгоритмического мышления и конкретных знаний для студентов. При этом достаточно сложно оценивать абсолютную эффективность алгоритмов шедулинга - гораздо интереснее сравнивать относительную эффективность работы разных алгоритмов. Разработке подобной площадки для соревнований алгоритмов шедулинга и посвящен данный проект.

План действий

  1. Изучить теорию расписаний.
  2. Исследовать динамические алгоритмы планирования (Scheduling) в распределенных вычислительных системах.
  3. Исследовать алгоритмы тестирования программ
  4. Исследование алгоритмов тестирования программ с использованием генетических алгоритмов.
  5. Проектирование, разработка тестовой системы для соревнований алгоритмов планирования (Scheduling)

Решаемые технические проблемы

Повышение эффективности динамических алгоритмов планирования в распределенных вычислительных системах

Стек технологий

  1. User and Organizations
    • Инструменты гибкой разработки Agile, Scrum, Kanban
    • Тайм-менеджмент и планирование временем
  2. System Modeling
    • Системное моделирование с использованием языков UML/SysML
    • Анализ требований
  3. System Architecture and Infrastructure
    • Методы проектирование программных систем
    • Методы проектирования интеллектуальных систем
    • Организация параллельных и распределенных вычислений
    • Компьютерные сети
    • Виртуальные системы и сервисы
  4. Software Development
    • Программирование на языках C++, Java, Python
    • Использование стандартных библиотек С++, Boost, библиотек Python для обработки, анализа и визуализации данных
    • Web-разработка с использованием HTML, CSS, Java Script, PHP.
  5. Software Fundamentals
    • Алгоритмы и структуры данных
    • Операционные системы реального времени
  6. Hardware
    • Архитектура вычислительных систем

Предварительный перечень курсов

  1. Обработка и анализ данных https://openedu.ru/course/ITMOUniversity/BIGDATA2035/
  2. Прикладной искусственный интеллект https://openedu.ru/course/ITMOUniversity/APPARTINT2035/
  3. Методы машинного обучения https://openedu.ru/course/ITMOUniversity/INTROML/
  4. Интеллектуальный анализ данных https://openedu.ru/course/ITMOUniversity/MLDATAN/
  5. Хранилища и базы данных https://openedu.ru/course/spbu/DTBS/
  6. Технологии веб-сервисов https://www.specialist.ru/course/1cwebs
  7. Параллельные вычисления https://mipt.ru/online/algoritmov-i-tekhnologiy/raspr-calc.php
  8. Распределенные вычисления https://mipt.ru/online/algoritmov-i-tekhnologiy/raspr-calc.php
  9. Администрирование PostgreSQL 9.4. Базовый Курс https://www.youtube.com/watch?v=h_GdEaF1Ymc&list=PLaFqU3KCWw6KzGwUubZm-9-vKsi6vh5qC&index=2
  10. Специализация Learn SQL Basics for Data Science https://ru.coursera.org/specializations/learn-sql-basics-data-science
  11. Intermediate PostgreSQL https://ru.coursera.org/learn/intermediate-postgresql
  12. Библиотека программиста https://proglib.io/p/postgresql/
  13. Профессиональный информационно-аналитический ресурс, посвященный машинному обучению, распознаванию образов и интеллектуальному анализу данных http://www.machinelearning.ru/

Кем станет студент по завершению магистратуры

Программист-стажер, программист, разработчик систем машинного обучения и ИИ

Пререквизиты (входные требования)

Базовые программы курсов:

  • Высшая математика
  • Основы программирования
  • Алгоритмы и структуры данных
  • Программная инженерия
  • Архитектура программных систем
  • Базы данных