Разработка системы доступа к суперкомпьютерам МГУ — Octoshell
«Ломоносов» — суперкомпьютер, запущенный в МГУ в 2009 году. Учёные и студенты использовали его для вычислений в своих научных работах. Получить доступ к нему было целым квестом, который мог длиться так долго, что вычисления были уже не нужны. Мы разработали для «Ломоносова» систему контроля доступа и сократили время согласования заявки на вычисление с нескольких недель до 17 часов.
Три проблемы, которые стояли перед командой Evrone:
- Желающих много, а суперкомпьютер — один. Сотрудники почти захлебнулись в бюрократии и бумажках.
- Непонятно кто и в какой момент работает за компьютером. Решает ли он те задачи, что описал в бумажной заявке? Не перемешалась ли очередь?
- Компьютер можно сделать мощнее. Но есть риск, что заметить это будет просто некому. Все заявки оформляют.
Решение — open-source система, которая подошла бы любому суперкомпьютеру
Чтобы разработанную систему можно было применить в любой точке мира, она должна быть модульной. С возможностью отключения или изменения функций, которые сотрудники другого университета посчитали бы ненужными.
Система должна:
- выдавать доступы к вычислениям и квоты на них;
- учитывать приоритетность выполнения задач;
- следить за состоянием оборудования;
- давать возможность связи с пользователем и между пользователями;
- давать возможность разграничивать проекты, устанавливать между ними связи и взаимодействия;
- позволять администрировать ПО, используемое в суперкомпьютерах.
Базовое приложение поддерживает основные функции: контроль доступа, обмен документами, контроль исполнения программ, обработка внештатных ситуаций. Вся работа администраторов и доступ к вычислениям реализованы через web-приложение. Основная логика написана на JRuby. Всё, что не относится к базовой версии, выделено в подключаемые модули. Для хранения данных используется PostgreSQL.
Сегодня Octoshell обеспечивает администрирование всего суперкомпьютерного центра МГУ и помогает получать доступ сразу к трём машинам: «Чебышев», «Ломоносов» и «Ломоносов — 2».
Получившаяся система помогла ускорить согласование вычислений в несколько раз. Надеемся, что своим небольшим вкладом мы помогли свершиться каким-нибудь невероятным открытиям.