Вычислительный агент (проект) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
 
Строка 7: Строка 7:
 
|summer=on
 
|summer=on
 
|categorize=yes
 
|categorize=yes
 +
|is_archived=yes
 
}}
 
}}
  

Текущая версия на 10:42, 20 октября 2015

Ментор Олег Сухорослов
Учебный семестр Весна 2015
Учебный курс 1-й курс
Проект можно развивать на летней практике


Внимание! Данный проект находится в архиве и реализован не будет.

Что это за проект?

Целью проекта является реализация вычислительного агента - программы, позволяющей удаленно запускать расчеты на компьютере. Будучи запущенным, агент обслуживает поступающие по сети запросы клиентов на запуск вычислительных заданий. Для каждого полученного задания агент выполняет запуск заданной команды, мониторинг запущенного процесса и передачу клиенту полученных результатов. Подобные агенты являются одним из элементов архитектуры многих систем распределенных вычислений.

Чему вы научитесь?

  • Создавать консольные приложения на Python
  • Работать с процессами и потоками
  • Реализовывать сетевое взаимодействие на уровне протокола HTTP

Какие начальные требования?

  • Программирование на Python (в рамках прослушанного курса)
  • Умение работать с Linux (желательно)

Какие будут использоваться технологии?

  • Python
  • Библиотеки для работы с HTTP (Tornado, Requests)
  • git

Темы вводных занятий

  • Python: работа с процессами и потоками, реализация консольных программ
  • Основы HTTP, архитектурный стиль REST, реализация серверных и клиентских приложений на Python

Направления развития

  • Измерение ресурсов, потребленных заданием (например, процессорное время)
  • Реализация ограничений на потребляемые заданием ресурсы (время выполнения, дисковое пространство, объем памяти)
  • Мониторинг текущей загрузки машины, выполнение заданий только в моменты простоя
  • Автоматическое обнаружение агентов в локальной сети
  • Распределение заданий (балансировка нагрузки) между несколькими агентами
  • Обнаружение и обработка отказов агентов
  • Реализация альтернативной архитектуры с центральным сервером, к которому подключаются агенты

Критерии оценки

  • 4-5 - простейшая реализация агента с синхронной обработкой запросов
  • 6-7 - реализация агента с асинхронной обработкой запросов и ограничением на число одновременно выполняемых заданий
  • 8-10 - реализация консольного клиента для взаимодействия с одним или несколькими агентами

Материалы и полезные ссылки