Octoshell — масштабируемая и гибкая система доступа к суперкомпьютеру МГУ

March 2020

В 2009 году в вычислительном центре Московского государственного университета был запущен суперкомпьютер «Ломоносов». К середине 2011-го он вышел на 13-е место в мировом рейтинге суперкомпьютеров. Компания Evrone разработала для него систему контроля управления доступом Octoshell.

В офлайн-режиме

Суперкомпьютер активно использовался для вычислений как в масштабных научных проектах, так и в лабораторных работах студентов МГУ. Получение доступа к нему до внедрения Oсtoshell было организовано через предоставление заявок на процессорные мощности по обычной, бумажной почте. И по понятным причинам этот канал связи нельзя назвать оперативным.

Пока письма путешествовали по кабинетам или почтовым отделениям, задачи пользователей могли потерять актуальность, а сроки научной работы перенестись. С учетом того, что количество пользователей, претендующих на мощности суперкомпьютерного комплекса, планировалось увеличить в десятки раз – имелся большой риск захлебнуться в бумажной волоките и сильно замедлить эффективное распределение ресурсов.

Кроме того, работа пользователя на суперкомпьютере для самого вычислительного центра не являлась полностью прозрачной. Было непонятно, кто работает на компьютере в тот или иной момент, решает ли он именно те задачи, что заявлены, успешной ли получилась работа, какие проблемы возникали и по какой причине. Пользователи представляли отчеты по принципу «кто как может», что не гарантировало полноту и достоверность информации.

Университет планировал увеличение вычислительной мощности, но при существующих проблемах это не принесло бы никаких результатов. Было принято решение разработать автоматизированную систему доступа, которая поможет справиться с перечисленными проблемами.

msu supercomputer

Open source для суперкомпьютеров

Главная идея разработки системы доступа заключалась в том, чтобы Octoshell можно было использовать с любым суперкомпьютером мира, в любом институте или организации. По этой причине структура должна быть модульная.

Модульность дает гибкость. К примеру, в каком-то вычислительном центре необходима своя форма и способ регистрации или своя форма отчетности — сотрудник этого ВЦ, внеся изменения в отдельный модуль или написав свой, может настроить систему с учетом конкретных требований. Функциональность базового же приложения и совокупность модулей должны были обеспечить:

  • возможность быстрого и удобного получения доступа к мощностям суперкомпьютерного комплекса;
  • обмен согласовательными документами в онлайн-режиме;
  • автоматическое предоставление реквизитов доступа после согласования;
  • контроль за выполняемыми задачами;
  • контроль загруженности суперкомпьютера;
  • автоматизация своевременного предоставления полных отчетов пользователями;
  • автоматическую генерацию отчетов об эффективности использования суперкомпьютера;
  • создание системы анализа статистики;
  • поддержку пользователей;
  • сбор информации о сбоях при вычислениях;
  • автоматическую отработку внештатных ситуаций;
msu supercomputer picture

Для обеспечения модульности было решено использовать механизм, который является основанием любого Rails-проекта, а именно Rails Engines. Engine — это самостоятельная библиотека, которая может быть оформлена как ruby gem и подключена к основному приложению. Примером популярного проекта, использующего тот же подход, является Shopify.

В базовом приложении реализована минимальная функциональность: профиль пользователя, формирование группы пользователей по правам доступа, разграничение прав на различные действия. Остальная логика вынесена в модули. Octoshell написан на JRuby. Связано это с тем, что работа суперкомпьютера предполагает одновременное решение большого количества задач. Обычный Ruby плохо масштабируется по ядрам процессора, а JRuby позволяет утилизировать все имеющиеся процессоры в равной степени.

Результаты внедрения

Система с сопутствующей документацией и обучающими материалами была передана университету. После её внедрения:

  • скорость согласования и выделение процессорных мощностей сократилась с нескольких недель до 17 часов;
  • реализуется одновременно более 600 научных проектов;
  • доступ к компьютерам получили более 250 научных организаций и свыше 3000 пользователей;
  • служба поддержки обрабатывает более 1000 обращений в год.

Система управления суперкомпьютером распространяется по свободной лицензии MIT. Адрес репозитория: https://github.com/octoshell/octoshell-v2

Octoshell контролирует доступ пользователей к трем суперкомпьютерам, и мы интегрировали его без каких-либо изменений системного ПО!
Сергей Жуматий
Системный администратор, Компьютерный исследовательский центр МГУ
Несмотря на техническую сложность проекта, связанного с разработкой систем поддержки суперкомпьютерного комплекса МГУ, специалисты Evrone достойно справились с поставленными задачами. Созданный продукт позволяет эффективно управлять ресурсами суперкомпьютеров и автоматизировать сложные процессы работы с пользователями комплекса.
Александр Тихонравов
Профессор, Директор центра копьютерных исследований МГУ
Будем на связи
Прикрепить файл
Максимальный размер файла: 8 МБ.
Допустимые типы файлов: jpg jpeg png txt rtf pdf doc docx ppt pptx.