Организация доступа к высокопроизводительным вычислительным ресурсам в hpc Community Cloud

Тип работы:
Реферат
Предмет:
ТЕХНИЧЕСКИЕ НАУКИ


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Информатика, вычислительная техника и управление УДК 004. 75 DOI: 10. 14 529/cmse140406
ОРГАНИЗАЦИЯ ДОСТУПА К ВЫСОКОПРОИЗВОДИТЕЛЬНЫМ
ВЫЧИСЛИТЕЛЬНЫМ РЕСУРСАМ В HPC COMMUNITY CLOUD1
С. А. Вайцель, М.А. Городничев
HPC Community Cloud представляет собой программный комплекс для объединения вычислительных ресурсов в единый сервис и предоставления доступа к этому сервису пользователям через веб-приложение и внешним программным системам через программный интерфейс. HPC Community Cloud скрывает нюансы работы с различными вычислительными системами за единой точкой доступа пользователей к сервису. В работе представлена архитектура и реализация программного комплекса HPC Community Cloud.
Ключевые слова: суперкомьпьютеры, распределенные вычисления, облачный сервис, высокопроизводительные вычисления.
Введение
Цель проекта HPC Community Cloud (HPC2C) [1] - создание программного инструментария для обеспечения доступа программных систем к высокопроизводительным вычислительным системам (ВВС), накопления и повторного использования программ для решения прикладных задач на ВВС, повышения уровня интерфейсов взаимодействия пользователей с ВВС.
Программный инструментарий HPC2C состоит из веб-приложения, реализующего пользовательский интерфейс, и сервера управления, предоставляющего программный интерфейс внешним программным системам. Высокоуровневый веб-интерфейс HPC2C для взаимодействия пользователей с высокопроизводительными вычислительными системами предназначен для повышения эффективности работы пользователей научно-образовательных вычислительных центров, снижает порог вхождения пользователей в область высокопроизводительных вычислений за счет интерактивных обучающих материалов и интуитивно понятных инструментов управления. Сервер управления ведет учет пользователей, подключенных высокопроизводительных вычислительных систем, управляет прохождением расчетных задач на вычислительных системах, организует хранение пользовательских данных и программ. Программный интерфейс обеспечивает возможность разработки прикладных программных систем, способных обращаться к ресурсам вычислительных центров для проведения крупномасштабных расчетов. HPC2C скрывает нюансы работы с различными вычислительными системами за единой точкой доступа пользователей к сервису и единой системой управления.
1 Статья рекомендована к публикации программным комитетом Международной суперкомпьютерной конференции «Научный сервис в сети Интернет: многообразие суперкомпьютерных миров -2014»
HPC2C реализует платформу для накопления и интегрирования в единый интерфейс содержимого, создаваемого сторонними разработчиками: средств конструирования программ, средств визуализации данных, интерактивных учебных материалов, средств численного моделирования, анализа данных.
В настоящее время пользователям вычислительных систем, как правило, приходится при переходе от системы к системе изучать нюансы взаимодействия с ними. Перенос задач из одной в систему в другую не автоматизирован, пользователь обычно все делает вручную. Отсутствует интеграция инструментов интерактивного обучения работе с высокопроизводительными вычислительными системами и программирования таких систем со средствами доступа к высокопроизводительным вычислительным системам.
Рис. 1. HPC2C — единый интерфейс для доступа к множеству вычислительных систем
Коммерческие центры обработки данных предоставляют облачные сервисы в области высокопроизводительных вычислений (Microsoft Azure Big Compute, Amazon EC2 и др.). Однако в настоящее время сервис сводится к тому, что пользователь может сконструировать для себя нужных размеров и свойств виртуальный суперкомпьютер, а далее он встречается с теми же самыми проблемами программирования и взаимодействия с вычислительными системами, что и в случае с традиционными вычислительными центрами. Компания Sabalcore создала облачный сервис, который предоставляет доступ к формируемому самой компанией набору программных пакетов для численного моделирования, при этом отсутствует возможность для пользователей и сторонних разработчиков свободно публиковать свои программные пакеты, учебные материалы.
В разделе 1 представлена архитектура программного комплекса HPC2C и программный интерфейс сервера управления HPC2C. В разделе 2 описано веб-приложение HPC2C. В разделе 3 даны подходы к интеграции пользовательских приложений в среду HPC2C.
1. Архитектура программного комплекса HPC Community Cloud
Программный инструментарий HPC Community Cloud состоит из веб-приложения и сервера управления, предоставляющего программный интерфейс внешним программным системам (рис. 2). Посредством веб-интерфейса пользователи HPC Community Cloud разрабатывают программы, осуществляют работу с ранее установленными в HPC Community Cloud программами численного моделирования, анализа данных, ставят вычислительные задания на исполнение на ВВС. Сервер управления ведет учет пользователей, подключенных ВВС, управляет прохождением расчетных задач на вычислительных системах, организует хранение пользовательских данных и программ. Функциональность сервера
доступна внешним программным системам (примером которых является веб-приложение) посредством программного интерфейса (API) HPC Community Cloud. Программный интерфейс обеспечивает возможность разработки прикладных программных систем, способных обращаться к ресурсам вычислительных центров для проведения крупномасштабных расчетов.
Рис. 2. Архитектура программного инструментария HPC2C 1.1. Функциональность сервера управления
К большинству функций сервера управления могут обращаться внешние программные системы посредством программного интерфейса. Программный интерфейс реализован в виде HTTP-сервиса, принимающего запросы определенного вида. Для облегчения разработки внешних приложений, работающих на стороне браузера, а также приложений на платформе Node. js, создана библиотека функций на JavaScript, реализующих соответствующие запросы.
В ведении сервера управления находятся среди прочего следующие объекты:
• пользователи,
• подключенные вычислительные системы,
• вычислительные задания, которые ставят пользователи на вычислительные системы,
• приложения,
• файлы,
• базы данных.
Неформально функционирование HPC Community Cloud описывается следующим образом. Пользователь загружает в HPC Community Cloud файлы с исходными данными и текстами программ, регистрирует доступные ему вычислительные системы, на которых он имеет собственные учетные записи, либо же выбирает вычислительные системы их списка общедоступных подключенных в HPC Community Cloud систем, описывает правила сборки программ на основе системы make, осуществляет сборку программ в соответствии с архитектурой целевой вычислительной системы, ставит вычислительное задание на исполнение, отслеживает состояние задания, имеет доступ к файлам, сформированным в ходе расчетов. Для формирования заданий пользователи могут также выбирать приложения, к которым им предоставили доступ другие пользователи, а также предоставлять доступ к своим приложениям. Все указанные функции доступны через программный интерфейс сервера управления, а пользователи получают доступ к этим функциям либо
посредством веб-приложения HPC2C, либо внешних программных систем. В HPC2C вводятся и используются понятия фреймворков (каркасов) программ и моделей. Фрейм-ворки — это предметно-ориентированные средства разработки программ, обладающие встроенным в веб-приложение HPC2C графическим интерфейсом, который проводит пользователя через серию шагов по дополнению фреймворка до исполняемой программы. Модели — это готовые программы численного моделирования с графическим интерфейсом, в котором пользователь задает параметры расчетов и отправляет сформированное вычислительное задание на выполнение на какой-либо вычислительной системе. Модели могут встраиваться в веб-приложение HPC2C, если для реализации их взаимодействия с пользователем не требуются функции за пределами API HPC Community Cloud. Для некоторых моделей может оказаться целесообразным реализация отдельного веб-приложения, серверная часть которого проводит обработку данных либо генерацию элементов пользовательского интерфейса, которые не могут быть эффективно реализованы на клиентской стороне (в браузере на JavaScript) с обращениями к API HPC Community Cloud.
В дальнейших разделах рассматривается спецификация объектов управления порядка работы с ними.
1.2. Учет и авторизация пользователей
Обращение ко всем функциям сервера управления осуществляется веб-приложением или внешними программными системами от имени зарегистрированных пользователей посредством программного интерфейса.
Регистрация пользователей осуществляется через форму в веб-приложении или непосредственно через программный интерфейс.
Работа с программным интерфейсом начинается с авторизации пользователя по паре & lt-логин, пароль& gt- и получению, в случае успешной авторизации, ключа доступа — строки специального вида. В дальнейших обращениях к функциям программного интерфейса наряду с остальными параметрами посылается ключ доступа, который служит подтверждением права вызывающей стороны на выполнение этой функции. Через определенный период времени ключ доступа дезактивируется и должен быть запрошен новый.
Пользователи могут состоять в различных группах. Права на выполнение различных функций над различными объектами могут выставляться на уровне групп и на уровне отдельных пользователей
Сервер ведет базу данных пользователей. Программный интерфейс HPC Community Cloud включает следующие операции для управления учетными записями:
• создание учетной записи с заданными полями,
• изменение полей учетной записи
• проверка пары & lt-логин, пароль& gt-, т. е. авторизация, и предоставление ключа доступа к остальным функциям.
1.3. Операции с файлами
Сервер управления осуществляет управление хранением пользовательских файлов, перемещение файлов между вычислительными системами перед выполнением и после выполнения расчетных заданий, позволяет выгружать файлы на машину пользователя и загружать файлы с машины пользователя в HPC Community Cloud, редактировать структуру файлового дерева.
При создании учетной записи пользователя для этой учетной записи создается в файловом хранилище «домашний» каталог со следующей структурой: /apps
/appstorage / experiments / frameworks /models
Каталог /apps предназначен для хранения файлов приложений, разрабатываемых через интегрированную среду разработки (IDE), встроенную в веб-приложение (см. раздел 2).
В каталоге /appstorage размещают свои рабочие данные различные приложения, фреймворки и модели. Каталог играет такую же роль, как папка Application Data в профилях пользователей Windows.
В каталоге /experiments для каждого задания, которое ставится на исполнение на вычислительные системы, создается каталог с именем задания. В каталоге размещаются исполнительные файлы, входные и выходные файлы расчетов, прочие необходимые для выполнения задания материалы.
В каталоге /frameworks размещаются каталоги фреймворков. Фреймворки могут быть разработаны пользователем, могут быть загружены извне. Список фреймворков, доступных пользователю, состоит из фреймворков в этом каталоге и фреймворков, к которым предоставили ему доступ другие пользователи.
В каталоге /models размещаются каталоги моделей. Модели могут быть разработаны пользователем через IDE, могут быть загружены извне. Список моделей, доступных пользователю состоит из моделей в этом каталоге и моделей, к которым предоставили ему доступ другие пользователи
Программный интерфейс HPC Community Cloud включает следующие операции для управления файлами:
• загрузка файла в хранилище HPC Community Cloud,
• выгрузка файла из хранилища,
• получение списка файлов и подкаталогов в заданном каталоге,
• копирование файлов/каталогов между расположениями в хранилище,
• перемещение файлов/каталогов между расположениями в хранилище (в т.ч. переименование),
• создание каталогов,
• удаление файлов/каталогов из хранилища.
Программный интерфейс не позволяет пользователям обращаться к файлам вне их домашнего каталога.
1.4. Учет подключенных вычислительных систем
Пользователи подключают к своей учетной записи вычислительные системы, после чего могут осуществлять запуск заданий на этих вычислительных системах через программный интерфейс или веб-приложение.
Можно использовать вычислительные системы, находящиеся в списке общедоступных в HPC Community Cloud или подключать к HPC Community Cloud новые вычислительные системы, в том числе персональные рабочие станции с известными IP-адресами. Можно сделать такие системы доступными для подключения другими пользователями.
Для подключения новой системы нужно указать следующие данные:
• имя вычислительной системы,
• доменное имя или IP-адрес,
• имя учетной записи пользователя на этой вычислительной системе,
• пароль или ключ доступа к вычислительной системе.
Персональные пароль или ключ доступа сохраняются в базе данных HPC Community Cloud.
1.5. Выполнение расчетных задач
Сервер управления HPC2C от имени пользователя, используя его логин и пароль/ключ, осуществляет
• запуск заданий на подключенных к аккаунту пользователя вычислительных системах,
• мониторинг состояния заданий,
• загрузку необходимых для выполнения задания файлов на вычислительную систему из файлового хранилища HPC Community Cloud,
• загрузку файлов, полученных в результате расчетов, из вычислительной системы в файловое хранилище HPC Community Cloud,
• управление ходом вычислений на основании команд пользователя, подаваемых в интерактивном режиме.
Программный интерфейс предоставляет единый формат для описания задания для всех подключаемых систем. В зависимости от особенностей порядка прохождения задач на той или иной системе, описание задание транслируется в необходимый формат, и выполняются необходимые действия для запуска задания. Для обеспечения возможности запуска задач на системах, порядок прохождения задач в которых отличается от тех, что уже зарегистрированы в HPC Community Cloud, может потребоваться либо реализация отдельного модуля для взаимодействия с данной вычислительной системой, либо могут быть расширены или переконфигурированы существующие модули. В настоящее время поддерживается запуск последовательных и параллельных, реализованных с применением технологии MPI, программ на рабочих станциях и кластерах на Linux без системы управления прохождением задач (очереди), и системой прохождения задач типа OpenPBS (Torque). В зависимости от специфических настроек системы управления прохождением задач, выполняемых администраторами, может потребоваться настройка модулей HPC Community Cloud, ответственных за взаимодействие с такими системами, например, подстановка конкретного имени очереди.
Сведения, необходимые для формирования задания в HPC Community Cloud обычны для систем управления прохождением задач в высокопроизводительных вычислительных системах и в грид.
Постановка задания на счет состоит из двух этапов, для чего предусмотрены две разные команды в программном интерфейсе: формирование задания и запуск задания. Все файлы, необходимые для выполнения задания и получаемые в результате выполнения задания создаются в каталоге /experiments/имя_задания. Сформированное задание может быть модифицировано: все поля, за исключением названия задания. Задание может быть запущено многократно.
1.6. Разработка пользовательских приложений и сборка
Для обеспечения разработки пользовательских приложений и их сборки предусмотрены такие операции:
• создание приложения (создается каталог приложения в директории /apps и осуществляется регистрация приложения в базе данных),
• модификация дерева файлов приложения (создание каталогов, файлов, и т. д.),
• спецификация порядка сборки приложения через систему сборки make,
• сборка приложения.
В настоящее время поддерживается сборка последовательных приложений на С/С++ и параллельных на С/С++ и LuNA [2] с использованием MPI или NumGRID [3].
2. Веб-приложение HPC Community Cloud
Веб-приложение реализует пользовательский интерфейс к системе HPC2C. Посредством этого интерфейса пользователь осуществляет разработку приложений, постановку вычислительных заданий на счет, отслеживание состояния заданий и просмотр результатов расчетов. Веб-приложение HPC2C является примером внешней программной системы, эксплуатирующей программный интерфейс HPC2C для доступа к системе хранения данных и управления прохождением заданий в высокопроизводительных вычислительных системах. Веб-приложение изолирует пользователя от особенностей различных вычислительных систем, с которыми он теперь работает через единый интерфейс. Веб-приложение состоит из трех основных инструментов: личного кабинета (рис. 3), среды разработки программ (IDE, рис. 4), интерфейса для постановки вычислительных заданий (рис. 5). В личном кабинете пользователь видит список всех доступных приложений и может создать новое приложение, видит статус всех созданных вычислительных заданий и может сформировать новое или модифицировать и перезапустить старые.
/ «¦ user: Dashboard: HPC*
CD hpccloud. ssd. sscc. ru
EDITOR CLUSTERS STATISTIC HELP
0 SETTINGS О S
My projects
My experiments
I APPLICATIONS& quot- Щ EXPERIMENTS& quot- |
luna 2014−07−15 11: 50 yyy_experiinent 2014−07−14 !?-52 1: ! I=UN& quot-I
MSG 2014−04−30 02: 23 experiment 2014−07−14 17−50 1. ! HSdil
gauss2 2014−04−30 00: 21 qweqweas_visualizer 2014−07−09 22: 31 l^MI-i*
gaussl 2014−01−30 00: 21 qweqveas_slmulator 2014−07−09 13: 10 lal. '-buldil
poisson 2014 04 27 14: 14 qweqweas_constructor 2014−07−09 13: 10 1- ! Hildil
KSE_RGR 2014−03−24 17: 44 sdf_slinulator 2014−07−08 11: 40 ¦drindil
I FRAMEWORKS& quot- sdf_constructor 2014−07−08 11: 40 ldl! lbl!ld"l
PIC 2014−04−08 16: 36 haha_simulator 2014 07−07 13: 23 ¦ diliidiM
I MODELS& quot- haha_constructor 2014−07−07 13: 23 1Л!1Н!ЫД
CA 2014−03−28 01: 04 hash_simulator 2014−05−29 20: 29 и& gt-п-Л
My Clusters nks-g6. sscc. ru
Рис. 3. Личный кабинет пользователя HPC2C
Среда разработки программ имеет типичную для таких систем функциональность, но доступна через Интернет в браузере пользователя, и непосредственно в ней может быть сформировано задание на исполнение разработанной программы на подключенных к ак-
каунту пользователя высокопроизводительных вычислительных системах. Окно формирования задания позволяет задать параметры вычислительного задания, обычные для высокопроизводительных вычислительных систем. В личном кабинете пользователю доступен список фреймворков и моделей, на основе которых он может сформировать задания (см. раздел 3).
Рис. 4. IDE для онлайн-разработки
3. Встраивание пользовательских моделей и фреймворков в веб-приложение HPC Community Cloud
Организация веб-приложения HPC2C предполагает возможность интеграции в него интерфейсных средств для моделей и фреймворков, разрабатываемых пользователями. Все необходимые файлы для работы моделей и фреймворков размещаются пользователем в файловом хранилище HPC2C в специальных каталогах /models и /frameworks. По нажатии пользователем на имя модели или фреймворка в списке в личном кабинете веб-приложение загружает подготовленный разработчиком интерфейса и правильным образом размещенный файл, содержащий код на JavaScript, который реализует пользовательский интерфейс модели (фреймворка). Код содержит реализацию инициализирующей функции с заданным прототипом, которую вызывает веб-приложение после загрузки скрипта. Для работы с файловым хранилищем HPC2C, постановки расчетных задач, мониторинга расчетных задач и выгрузки результатов работы для демонстрации пользователю скрипт использует вызовы к JavaScript библиотеке HPC2C, реализующей обращения к API HPC2C.
На основе этого подхода разработан встроенный в веб-приложение HPC2C интерфейс для программного комплекса клеточно-автоматного моделирования газопорошковых потоков Ю. Г. Медведева (ИВМиМГ) [4]. Интерфейс обеспечивает задание параметров моделирования, в т. ч. модельной области с различными вариантами стенок, препятствий в каналах, и обеспечивает визуальное представление результатов расчетов. Вычисления выполняются на кластере Сибирского суперкомпьютерного центра. Пользователь в своем личном кабинете может отслеживать состояние задания, возвращаться к работе с моделью, анализировать результаты и запускать повторные вычисления.
Интерактивные обучающие материалы реализуются и встраиваются в веб-приложение НРС2С на основе этой технологии.
Рис. 5. Интерфейс для постановки расчетных заданий
Заключение
Разработана архитектура и реализован прототип программного комплекса HPC Community Cloud в составе сервера, обеспечивающего учет пользователей, вычислительных ресурсов, управление хранением данных и прохождением заданий в вычислительных системах и предоставляющего услуги внешним программным системам через программный интерфейс, а также веб-приложения, являющегося примером внешней программной системы, и реализующего высокоуровневый пользовательский интерфейс для удаленной работы с высокопроизводительными вычислительными ресурсами. Архитектура системы позволяет встраивание прикладных программных систем, интерактивных обучающих материалов в единый интерфейс взаимодействия с высокопроизводительными вычислительными ресурсами.
Литература
1.
2.
3.
4.
Городничев, М.А. HPC Community cloud: эффективная организация работы научно-образовательных суперкомпьютерных центров / М. А. Городничев, В. Э. Малышкин, Ю. Г. Медведев // Научный вестник НГТУ. — 2013. — № 3(52). — С. 91−96. Malyshkin, V. Optimization methods of parallel execution of numerical programs in the LuNA fragmented programming system / V. Malyshkin, V. Perepelkin / / The Journal of Supercomputing, Special issue on Enabling Technologies for Programming Extreme Scale Systems. — 2012. — Vol. 61, No. 1. — P. 91−96. — DOI: 10. 1007/s11227−011−0649−6. Городничев, М. А. Объединение вычислительных кластеров для крупномасштабного численного моделирования в проекте NumGRID / М. А. Городничев // Вестник Новосибирского государственного университета (серия «Информационные технологии»). — 2012. — Т. 10, вып. 4. — С. 63−73.
Медведев, Ю. Г Программный комплекс клеточно-автоматного моделирования газопорошковых потоков / Ю. Г. Медведев // Параллельные вычислительные технологии (ПаВТ'-2012): труды международной научной конференции (Новосибирск, 26−30 марта 2012 г.). — Челябинск: Издательский центр ЮУрГУ, 2012. — С. 732.
Городничев Максим Александрович, младший научный сотрудник Института вычислительной математики и математическо геофизики СО РАН (Новосибирск, Российская Федерация), maxim@ssd. sscc. ru.
Вайцель Сергей Александрович, студент, Новосибирский государственный технический университет (Новосибирск, Российская Федерация), seralwei@gmail. com
Поступила в редакцию 12 августа 2014 г.
Bulletin of the South Ural State University Series & quot-Computational Mathematics and Software Engineering& quot-
2014, vol. 3, no. 4, pp. 85−95
DOI: 10. 14 529/cmse140406
ORGANIZATION OF ACCESS TO SUPERCOMPUTING RESOURCES IN THE HPC COMMUNITY CLOUD
M. Gorodnichev, Institute of Computational Mathematics and Mathematical Geophysics
SB RAS (Novosibirsk, Russian Federation),
S. Vaycel, Novosibirsk State Technical University (Novosibirsk, Russian Federation)
HPC Community Cloud is a software system for aggregation of computing resources into a single entry service and provisioning of access to these resources for users through web-application and for external software systems through application programming interface. HPC Community Cloud encapsulates peculiarities of access to different computing systems, allows users to accumulate and share content such as applications, data and documents. The paper presents the architecture and prototype implementation of the HPC Community Cloud.
Keywords: supercomputers, HPC, high performance computing, cloud service.
References
1. Gorodnichev M.A., Malyshkin V.E., Medvedev Yu.G. HPC Community cloud: effectiv-naya organizatziya raboty nauchno-obrazovatel'-nykh supercomputernykh tzenrov [HPC Community Cloud: Efficient Organization of Work at Scientific-Educational Supercomputing Centers] // Nauchny vestnik NGTU [Scientific Bulletin of NSTU], Novosibirsk, Publishing of Novosibirsk State Technical University. No. 3(52). 2013. P. 91−96.
2. Malyshkin V., Perepelkin V. Optimization methods of parallel execution of numerical programs in the LuNA fragmented programming system / / The Journal of Supercomputing, Special issue on Enabling Technologies for Programming Extreme Scale Systems. Vol. 61, No. 1. 2012. P. 235−248. DOI: 10. 1007/s11227−011−0649−6.
3. Gorodnichev M.A. Obyedineniye vychislitel'-nykh klasterov dlya krupnomasshtabnogo chislennogo modelinrovania v proyekte NumGRID [Aggregation of Computing Clusters for Large-Scale Numerical Simulation in the NumGRID Project] / / Vestnik Novosibir-skogo Gosudarstvennogo Universiteta (seriya Informatzionnyje Tekhnologii) [Bulletin of
C.A. Baft^. b, M.A. DapogHHHeB
Novosibirsk State University (Information Technologies series)], Novosibirsk, Publishing of Novosibirsk State University. Vol. 10, Issue 4. 2012. P. 63−73.
4. Medvedev Yu.G. Programmny kompleks kletochno-avtomatnogo modelirovaniya gasopo-roshkovykh potokov [Software system for cellular-automata simulation of gas-powder flows] // Parallelnye vychislitelnye tekhnologii (PaVT'-2012): Trudy mezhdunarodnoj nauchnoj konferentsii (Novosibirsk, 26−30 marta 2012) [Parallel Computational Technologies (PCT'-2010): Proceedings of the International Scientific Conference (Novosibirsk, Russia, March 26−30, 2012]. Chelyabinsk: Publishing of the South Ural State University, 2012. P. 732.
Received August 12, 2014.

ПоказатьСвернуть
Заполнить форму текущей работой