Облачный сервис «Параллельный Matlab»

УДК 004.75: 004.272

ОБЛАЧНЫЙ СЕРВИС «ПАРАЛЛЕЛЬНЫЙ MATLAB»

А.В. Созыкин, к.т.н., зав. сектором; М.Л. Гольдштейн, к.т.н.., доцент, зав. отделом

Предложен подход к организации работы параллельных вычислений в пакете Matlab в качестве облачного сервиса. Отличительной особенностью сервиса является то, что в его рамках предоставляется не только параллельная вычислительная система с Matlab, но и рабочее место пользователя с графическим интерфейсом Matlab. Обеспечиваются возможность запуска вычислительных задач на суперкомпьютере из графического интерфейса Matlab и последующая обработка результатов расчета также в графическом интерфейсе. Предложена архитектура сервиса «Параллельный Matlab». Разработанная архитектура реализована в суперкомпьютерном центре Института математики и механики УрО РАН на основе вычислительной облачной платформы УрО РАН и суперкомпьютера «УРАН». В качестве рабочего места пользователя применяются виртуальные машины облачной платформы УрО РАН, на которые установлен Matlab с графическим интерфейсом и Parallel Computing Toolbox. На суперкомпьютере «УРАН» работает Matlab Distributed Computing Server. Интеграция виртуального рабочего места пользователя с суперкомпьютером выполнена на основе менеджера ресурсов SLURM.

Облачный сервис «Параллельный Matlab» предоставляет пользователям интегрированное решение для проведения параллельных вычислений в популярном пакете без необходимости самостоятельной установки и настройки параллельной версии Matlab. Для работы с сервисом на компьютере пользователя необходим только web-браузер. Установку и сопровождение параллельной версии пакета Matlab выполняют квалифицированные администраторы облачной платформы.

Ключевые слова: параллельные вычисления, суперкомпьютерные технологии, облачные вычисления, распределенные вычисления, Matlab.

"PARALLEL MATLAB" CLOUD SERVICE

Sozykin A V., Ph.D. Tech. Sc., head of sector; Goldshtein M.L., Ph.D. Tech. Sc., associate professor, head of department (Institute of Mathematics and Mechanics Ural Branch of the Russian Academy of Sciences, Sofi Kovalevskoy St., 16, Ekaterinburg, 620990, Russian Federation, avs@imm.uran.ru, mlg@imm.uran.ru);

Gribova V. V., Dr. Tech. Sc., senior researcher, head of laboratory;

Moskalenko Ph.M., Ph.D. Tech. Sc., research associate

Abstract. The approach to provide cloud service for parallel computation in Matlab is proposed. The distinctive feature of the approach is providing not only a parallel Matlab cluster, but also a virtual personal workspace with Matlab GUI as a cloud service. The users of the cloud service have the ability to execute jobs on the Matlab cluster from the Matlab GUI. In addition, Matlab GUI can be used to analyze results of the computation. An architecture of the "Parallel Matlab" cloud service is described. The suggested architecture is implemented at the supercomputer center of the Institute of Mathematics and Mechanics UrB RAS using the Computational cloud platform of UrB RAS and supercomputer "URAN". User workspaces are provided based on the virtual machines from Computational cloud platform of UrB RAS, which have Matlab GUI and Parallel Computing Toolbox installed. Matlab Distributed Computing Server is running on the supercomputer "URAN". Integration of the virtual user workspaces with the cluster is done with the help of the SLURM resource manager.

"Parallel Matlab" cloud service provides the integrated solution for parallel computation in the popular Matlab environment. Users do not have to install and configure parallel Matlab by themselves, the cloud service is ready to use and requires only a Web-browser. The installation and support of parallel Matlab is done by qualified cloud-platform administrators.

Keywords: parallel computing, high performance computing, supercomputing technologies, cloud computing, Matlab.

Разработка программ для современных суперкомпьютеров (СК), включающих тысячи процессорных ядер и сотни ускорителей (NVIDIA Tesla, Intel Xeon Phi), является сложной задачей. Повысить эффективность применения СК можно за счет предоставления пользователям знакомого им предметно-ориентированного пакета прикладных

программ, поддерживающего параллельные вычисления. Одним из таких пакетов является МайаЬ, который в настоящее время широко применяется для научных и инженерных расчетов. Однако параллельная версия МайаЬ, как и параллельные версии других подобных пакетов, отличается высокой сложностью в установке и сопро-

вождении, в результате пользователям практически невозможно самостоятельно установить пакет и обеспечить его работу в параллельном режиме на СК.

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

Параллельные вычисления в Matlab

Matlab включает несколько механизмов для проведения параллельных вычислений. Простейший подход основан на применении многопоточ-ности и работает на системах с общей памятью. Операции с матрицами, функции линейной алгебры, вычисления преобразования Фурье и некоторые другие имеют в Matlab многопоточную реализацию, которая позволяет использовать несколько процессоров или процессорных ядер. Для применения многопоточности не требуется модифицировать программу и приобретать дополнительные лицензии.

Matlab Parallel Computing Toolbox добавляет к стандартным возможностям Matlab средства для описания параллельных циклов и распределенных массивов. Parallel Computing Toolbox работает на серверах с общей памятью и графических ускорителях.

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

Допускается совместное использование различных подходов к параллельным вычислениям в Matlab. Например, может быть запущено несколько процессов Matlab в кластере, каждый из которых использует многопоточную функцию или GPU.

Таким образом, для проведения параллельных вычислений Matlab на СК необходимо следующее:

- СК с установленным Distributed Computing Server, интегрированным с системой запуска задач;

- рабочее место пользователя с графическим интерфейсом Matlab и Parallel Computing Toolbox, который обеспечит возможность отправлять задачи в очередь задач СК для расчета.

Рабочее место пользователя предлагается разместить в облаке и предоставлять доступ по модели SaaS.

Существующие подходы к организации работы Matlab в облачной конфигурации

В настоящее время Matlab в качестве сервиса предлагается ограниченным кругом поставщиков облачных услуг. Компания Mathworks, производитель Matlab, предлагает облачную платформу Mathworks Cloud (http://www.mathworks.com/mobi-le/connect-to-cloud.html), однако использовать ее можно только из специализированной версии Matlab Mobile, предназначенной для мобильных устройств. Matlab Mobile обладает существенными ограничениями, в частности, поддерживается только текстовый интерфейс, объем обрабатываемых данных не может превышать 500 Мб, нет возможности использовать редактор Matlab и др.

Альтернативным вариантом является совместный проект Mathworks и Amazon, цель которого -обеспечение возможности запуска программ Matlab в облаке Amazon EC2 (http://www.math-works.com/programs/mdcs-cloud.html). При этом на клиентском компьютере может использоваться полнофункциональная версия Matlab с Parallel Computing Toolbox, а в облаке EC2 работает кластер Distributed Computing Server. Однако в настоящее время проект находится на ранней стадии развития и в России недоступен.

Корнелльский университет реализовал проект «Matlab on the Teragrid» [1], целью которого являлось предоставление Matlab пользователям Teragrid в качестве сервиса, в том числе с использованием порталов научного взаимодействия, таких как nanohub.org [2]. В результате развития проекта в Корнелльском университете (США) создана облачная платформа Red Cloud [3], одним из предоставляемых сервисов которой является Matlab. Red Cloud предлагает использовать облачный кластер с Distributed Computing Server для параллельных вычислений. Клиент Matlab с Parallel Computing Toolbox, который обеспечит запуск задач на облачном кластере, должен быть установлен на компьютере пользователя. При этом пользователю необходимо установить и настроить дополнительное ПО, необходимое для взаимодействия с облачным кластером Red Cloud.

Очевидно, что в настоящее время нет общепринятой архитектуры предоставления Matlab в

качестве облачного сервиса для параллельных вычислений. Mathworks Cloud обладает существенно ограниченными возможностями, Matlab в Amazon EC2 доступен только в США и Канаде, и детали его работы не открываются. Подробная информация доступна по архитектуре Matlab в TeraGrid [1], но данное решение требует установки клиента Matlab и дополнительного ПО на компьютерах пользователя.

Архитектура

Для облачного сервиса «Параллельный Matlab» предложено архитектурное решение, позволяющее предоставлять в качестве сервиса не только кластер Distributed Computing Server, но и клиент Matlab с графическим интерфейсом и Parallel Computing Toolbox. Таким образом, пользователю не требуется выполнять установку и настройку дополнительного программного обеспечения; для работы с параллельным Matlab ему достаточно иметь только web-браузер. Схема разработанной архитектуры облачного сервиса «Параллельный Matlab» приведена на рисунке.

Matlab с графическим интерфейсом устанавливается в облачной платформе и предоставляется пользователям по модели SaaS. Доступ пользователей осуществляется через web-интерфейс с использованием VNC. Интеграция с суперкомпьютером выполняется средствами Parallel Computing Toolbox, который обеспечивает возможность взаимодействия с менеджером ресурсов суперкомпьютера. Parallel Computing Toolbox позволяет из графического интерфейса Matlab ставить задачу в очередь для расчета на СК, проводить мониторинг выполнения задачи, а после завершения рас-

четов загружать результаты для дальнейшей обработки в графическом интерфейсе. Менеджер ресурсов СК перед началом выполнения задачи обеспечивает запуск необходимого количества процессов Matlab (Matlab workers) на вычислительных узлах СК, которые затем занимаются расчетом задачи.

Для корректной совместной работы Matlab на СК и в облаке требуется решить две вспомогательные задачи.

1. Код программ и данные, подготовленные в облаке, должны быть доступны СК, когда задача будет запущена на счет.

2. Необходимо обеспечить согласованные механизмы контроля доступа пользователей как к облачной платформе, так и к СК.

Задача доступности кода программ и данных может быть решена двумя путями. Данные и код можно копировать из облачной платформы на СК средствами Parallel Computing Toolbox при постановке задачи в очередь. Такой подход прост в реализации, но плохо работает с большими объемами данных. Альтернативное решение заключается в создании разделяемой системы хранения данных,

подключенной как к облачной платформе, так и к СК. В этом случае программы и данные, подготовленные на облачной платформе, сразу будут доступны СК без промежуточного копирования. Так как на СК преимущественно решаются задачи, обрабатывающие большие объемы данных, для облачного сервиса «Параллельный МайаЬ» выбран подход на основе общей системы хранения, позволяющий избежать промежуточного копирования входных данных и результатов вычислений. Недостатком такого подхода является то, что на серверах облачной платформы и вычислительных

Пользователи

i î Î

Web-интерфейс

MATLAB GUI

É-3

Scheduler interface

MATLAB

Parallel Computing Toolbox

Оервер Matlab

Облачная платформа

Постановка задачи в очередь

Аутентификация и авторизация

Исходные данные и результаты

_JT-

Система хранения

м

О

-3

-î

Менеджер ресурсов суперкомпьютера

MATLAB Distributed Computing Server

MATLAB Distributed Computing Server

MATLAB Distributed Computing Server

MATLAB Distributed Computing Server

Оуперкомпьютер

m

Архитектура облачного сервиса «Параллельный Matlab»

узлах СК необходимо использовать одну и ту же операционную систему и одинаковую технологию доступа к системе хранения, что не всегда удобно.

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

Реализация

Предложенная архитектура реализована в ИММ УрО РАН на основе вычислительной облачной платформы УрО РАН [4] и СК «УРАН». В облачной платформе создан набор виртуальных машин, где установлен Matlab с графическим интерфейсом и Parallel Computing Toolbox. Виртуальные машины работают под управлением ОС Scientific Linux 6. Доступ пользователей организован на основе VNC [5] и web-клиента noVNC. Пользователи могут получать доступ к сервису с помощью как web-браузера (с использованием noVNC), так и VNC-клиента.

Интеграция с суперкомпьютером «УРАН» выполнена на основе менеджера ресурсов SLURM [6]. Parallel Computing Toolbox не включает встроенную поддержку работы со SLURM, поэтому был использован Generic Scheduler Interface, для которого разработаны Client Submit и Decode функции с поддержкой SLURM. При запуске задачи виртуальная машина с Matlab на облачной платформе устанавливает соединение по SSH с управляющей машиной СК «УРАН» и с помощью команд SLURM ставит задачу в очередь. Контроль состояния задачи и загрузка результатов вычислений возможны в графическом интерфейсе Matlab на облачной платформе с использованием команд из состава Parallel Computing Toolbox.

В качестве разделяемой системы хранения используется EMC Celerra NS-480, протокол NFS. Учетные данные пользователей хранятся в Microsoft Active Directory, для аутентификации и авторизации используется Kerberos.

В заключение отметим, что в работе описан подход к организации облачного сервиса «Параллельный Matlab». Предложена архитектура облачного сервиса, отличительной особенностью которого является то, что пользователям предоставляется не только вычислительный кластер с Distributed Computing Server, но и графический интерфейс Matlab с возможностью запуска вычислительных задач на кластере с использованием Parallel Computing Toolbox. Предложенная архитектура реализована в ИММ УрО РАН на основе

вычислительной облачной платформы УрО РАН и СК «УРАН». Практическая реализация подтвердила работоспособность предложенной архитектуры.

В настоящее время существенные ограничения на возможности использования сервиса «Параллельный Matlab» накладывает лицензионная политика компании Mathworks, которая не предусматривает лицензии для использования в облаке. С Matlab может работать только организация-владелец лицензий. Таким образом, из-за лицензионных ограничений текущая реализация сервиса «Параллельный Matlab» доступна только сотрудникам ИММ УрО РАН, что является существенным недостатком, так как суперкомпьютер «УРАН» предназначен для любых институтов УрО РАН.

Направлением дальнейших работ является создание виртуальной web-лаборатории «Параллельное программирование в Matlab», которая, помимо облачного сервиса «Параллельный Matlab», будет включать учебный курс и методики проведения параллельных расчетов в Matlab. Планируется обеспечить возможность использования на виртуальных машинах с графическим интерфейсом Matlab ОС Windows, которая востребована пользователями. Для этого необходимо решить проблему с передачей кода и данных, подготовленных в Windows, на вычислительный кластер с Linux.

Литература

1. Lapp B., Lee S., Walle L. MATLAB on the TeraGrid Technical Documentation. Cornell Univ. Center for Advanced Computing. URL: http://www.cac.cornell.edu/matlab/TechDocs/ BuildYourOwn.pdf (дата обращения: 05.06.2013).

2. Klimeck G., McLennan M., Brophy S.P., Adams G.B., Lundstrom M.S. Nanohub.org: Advancing Education and Research in Nanotechnology. Computing in Science & Engineering, 2008, vol. 10, no. 5, pp. 17-23.

3. Cloud R. Cornell University Centre for Advanced Computing. URL: http://www.cac.cornell.edu/redcloud/ (дата обращения: 05.06.2013).

4. Ермаков Д.Г., Усталов Д.А. Экспериментальная среда облачных вычислений в институте математики и механики УрО РАН // Программные продукты и системы. 2012. № 4. C. 110-115.

5. Richardson T., Stafford-Fraser Q., Wood K.R. & Hopper A. Virtual Network Computing. IEEE Internet Computing, 1998, vol. 2, no. 1, pp. 33-38.

6. Yoo A., Jette M. and Grondona M. SLURM: Simple Linux Utility for Resource Management, Job Scheduling Strategies for Parallel Processing. Lecture Notes in Computer Science, 2003, vol. 2862, pp. 44-60.

References

1. Lapp B., Lee S., Walle L. MATLAB on the TeraGrid Technical Documentation, available at: http://www.cac.cornell. edu/matlab/TechDocs/BuildYourOwn.pdf (accessed 5 June 2013).

2. Klimeck G., McLennan M., Brophy S.P., Adams G.B., Lundstrom M.S. Computing in Science & Engineering. 2008, vol. 10, no. 5, pp. 17-23.

3. Red Cloud, Cornell University Centre for Advanced Computing, available at: http://www.cac.cornell.edu/redcloud/ (accessed 5 June 2013).

4. Ermakov D.G., Ustalov D.A. Eksperimentalnaya sreda

oblachnykh vychisleniy v institute matematiki I mekhaniki UrO RAN [The experimental cloud computing environment in Institute of Mathematics and Mechanics Ural branch of RAS]. Pro-grammnye produkty i sistemy [Software & Systems]. 2012, no. 4, pp. 110-115.

5. Richardson T., Stafford-Fraser Q., Wood K.R., Hopper A.

IEEE Internet Computing. 1998, vol. 2, no. 1, pp. 33-38.

6. Yoo A., Jette M., Grondona M. Job Scheduling Strategies for Parallel Processing. Lecture Notes in Computer Science. 2003, vol. 2862, pp. 44-60.

УДК 004.89, 004.942

МЕТОД АВТОМАТИЗИРОВАННОГО СИНТЕЗА ВИРТУАЛЬНЫХ ОРГАНИЗАЦИОННЫХ СТРУКТУР ДЛЯ ЗАДАЧ УПРАВЛЕНИЯ РЕГИОНАЛЬНОЙ БЕЗОПАСНОСТЬЮ

А.В. Маслобоев, к.т.н.., старший научный сотрудник (Институт информатики и математического моделирования технологических процессов

Кольского научного центра РАН, Кольский филиал Петрозаводского государственного университета, ул. Ферсмана, 24а, г. Апатиты, 184209, Россия, masloboev@iimm.kolasc.net.ru)

Предложен метод синтеза проблемно-ориентированных виртуальных организационных структур для задач управления региональной безопасностью в кризисных ситуациях. Автоматизированный синтез основан на анализе отношений и атрибутов объектов разработанной формальной концептуальной модели мультиагентной информационно-аналитической среды поддержки управления региональной безопасностью. Метод поддерживает использование слабоструктурированных неполных разнородных исходных данных об анализируемых кризисных ситуациях, рассматриваемых на треке развития региона, и ориентирован на агентную реализацию. Метод обеспечивает динамическое формирование проблемно-ориентированных коалиций когнитивных агентов и виртуальных сетей ресурсов на основе формализованных описаний решаемых задач управления безопасностью в рамках мультиагентной виртуальной среды для информационной поддержки процессов принятия решений и координации деятельности субъектов безопасности.

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

A METHOD FOR AUTOMATED SYNTHESIS OF VIRTUAL ORGANIZATIONAL STRUCTURES FOR REGIONAL SECURITY MANAGEMENT PROBLEM-SOLVING Masloboev A. V., Ph.D. Tech. Sc., senior researcher

Аbstract. ТЪу article proposes a method for synthesis of problem-oriented virtual organizational structures for regional security management problem-solving in crisis situations. The automated synthesis is based on object relations and object attributes analysis of the developed formal conceptual model of multi-agent information-analytical system for regional security management support. The method can use loosely-structured incomplete heterogeneous input data about the analyzed crisis situations that are considered within the region development life-cycle. The method is oriented on agent-based implementation. For decision-making process information support and regional security subjects functioning coordination the method provides dynamic formation of the problem-oriented cognitive agent coalitions and virtual networks of resources based on formalized descriptions of security control solving problems within multi-agent virtual environment.

Keywords: conceptual model, automated synthesis, multi-agent system, information support, management, regional security.

Арктическая зона Российской Федерации (РФ) становится объектом национальных интересов ведущих мировых держав (США, Норвегия, Канада, Дания, Китай, Южная Корея и др.), что ослабляет позиции присутствия в Арктике РФ, владеющей ее значительными территориями, и формирует вектор угроз национальным, геополитическим, социально-экономическим, оборонным, демографиче-

ским и экологическим интересам России в этом районе. Повышение интереса к российской Арктике обусловливает высокую актуальность защиты интересов РФ в Арктической зоне и выводит задачу обеспечения глобальной безопасности развития арктических регионов России на передний план, позиционируя ее как самостоятельную проблему, требующую научной проработки. Решение