На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
17 Июня 2024

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

“Parallel Matlab” cloud service
Статья опубликована в выпуске журнала № 4 за 2013 год. [ на стр. 137-141 ]
Аннотация:Предложен подход к организации работы параллельных вычислений в пакете Matlab в качестве облачного сер- виса. Отличительной особенностью сервиса является то, что в его рамках предоставляется не только параллельная вычислительная система с Matlab, но и рабочее место пользователя с графическим интерфейсом Matlab. Обеспечиваются возможность запуска вычислительных задач на суперкомпьютере из графического интерфейса Matlab и последующая обработка результатов расчета также в графическом интерфейсе. Предложена архитектура сервиса «Параллельный Matlab». Разработанная архитектура реализована в суперкомпьютерном центре Института математики и механики УрО РАН на основе вычислительной облачной платформы УрО РАН и суперкомпьютера «УРАН». В качестве рабочего места пользователя применяются виртуальные машины облачной платформы УрО РАН, на которые установлен Matlab с графическим интерфейсом и Parallel Computing Toolbox. На суперкомпьютере «УРАН» работает Matlab Distributed Computing Server. Интеграция виртуального рабочего места пользователя с суперкомпьютером выполнена на основе менеджера ресурсов SLURM. Облачный сервис «Параллельный Matlab» предоставляет пользователям интегрированное решение для проведения параллельных вычислений в популярном пакете без необходимости самостоятельной установки и настройки параллельной версии Matlab. Для работы с сервисом на компьютере пользователя необходим только web-браузер. Установку и сопровождение параллельной версии пакета Matlab выполняют квалифицированные администраторы облачной платформы.
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.
Авторы: Созыкин А.В. (avs@imm.uran.ru) - Институт математики и механики УрО РАН, г. Екатеринбург, г. Екатеринбург, Россия, доктор технических наук, Гольдштейн М.Л. (mlg@imm.uran.ru) - Институт математики и механики УрО РАН, г. Екатеринбург, г. Екатеринбург, Россия, кандидат технических наук, Грибова В.В. (gribova@iacp.dvo.ru) - Институт автоматики и процессов управления ДВО РАН (зам. директора), г. Владивосток, Россия, доктор технических наук, Москаленко Ф.М. (philipmm@iacp.dvo.ru) - Институт автоматики и процессов управления ДВО РАН (старший научный сотрудник), г. Владивосток, Россия, кандидат технических наук
Ключевые слова: matlab, распределенные вычисления, облачные вычисления, суперкомпьютерные технологии, параллельные вычисления
Keywords: matlab, distributed computing, cloud computing, supercomputer technologies, parallel computing
Количество просмотров: 15438
Версия для печати
Выпуск в формате PDF (7.95Мб)
Скачать обложку в формате PDF (1.45Мб)

Размер шрифта:       Шрифт:

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

Актуальной является задача предоставления пользователям пакета 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»
Для облачного сервиса «Параллельный 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 при постановке задачи в очередь. Такой подход прост в реализации, но плохо работает с большими объемами данных. Альтернативное решение заключается в создании разделяемой системы хранения данных, подключенной как к облачной платформе, так и к СК. В этом случае программы и данные, подготовленные на облачной платформе, сразу будут доступны СК без промежуточного копирования. Так как на СК преимущественно решаются задачи, обрабатывающие большие объемы данных, для облачного сервиса «Параллельный 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 Com­puting, 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.


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=3673&lang=&lang=&like=1
Версия для печати
Выпуск в формате PDF (7.95Мб)
Скачать обложку в формате PDF (1.45Мб)
Статья опубликована в выпуске журнала № 4 за 2013 год. [ на стр. 137-141 ]

Возможно, Вас заинтересуют следующие статьи схожих тематик: