Фундаментальные исследованияrae.ru
Научный журнал

Фундаментальные исследования

ISSN 1812-7339«Перечень» ВАКИФ РИНЦ = 1,798

Применение сервис-ориентированной архитектуры для создания распределенных вычислительных систем

Ляшов М.В. 1, Берёза А.Н. 2, Бабаев А.М. 2, Алексеенко Ю.В. 2, Авдеева Т.Г. 2
1Донской государственный технический университет
2Институт сферы обслуживания и предпринимательства (филиал) Донского государственного технического университета

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

В Grid-системах можно объединять разнородные вычислительные ресурсы, и они широко используются для быстрой и относительно дешевой обработки большого объема вычисленных задач. Обычно это достигается путем деления сложных задач на более простые подзадачи (задания), которые могут быть обработаны параллельно с использованием доступных вычислительных ресурсов [7].

При организации Grid-вычислений необходимо решить проблему объединения разнородных вычислительных ресурсов в единую распределенную систему. В настоящее время в ИТ индустрии при создании информационных систем получила большое распространение сервис-ориентированная архитектура, благодаря своему главному преимуществу: возможности эффективной интеграции информационных ресурсов [1, 6, 7].

Cервис-ориентированная архитектура (англ. Service-Oriented Architecture, SOA) – это модульный подход к разработке программного обеспечения. Данный подход использует распределенные, заменяемые и слабо связанные компоненты, которые взаимодействуют между собой по стандартизированным протоколам (SOAP и др.). При этом компоненты реализуются как набор веб-служб [1, 2].

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

Технологии SOA, применяемые для построения Grid-систем

Рассмотрим основные технологии, которые могут быть использованы для построения Grid-систем на основе SOA с использованием веб-служб. Веб-служба (или веб-сервис, англ. web service) – программная система со стандартизированным интерфейсом, которая доступна по определенному веб-адресу. Взаимодействие веб-служб с другими службами либо со сторонними приложениями происходит на основе протоколов SOAP, XML-RPC, REST и т.д. [1, 2].

Для обеспечения взаимодействия веб-служб с другими службами либо со сторонними приложениями используются следующие стандарты: XML: Расширяемый язык разметки, предназначенный для хранения и передачи структурированных данных; SOAP: Протокол обмена сообщениями на базе XML; WSDL: Язык описания внешних интерфейсов веб-службы на базе XML.

Веб-служба состоит из нескольких частей, имеющих собственное назначение и поведение в системе. На рис. 1 представлена структурная схема веб-службы.

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

Главная особенность использования веб-служб в SOA – для того чтобы выполнить определенную задачу службы, необходимо вызвать метод данной службы с чётко определённым интерфейсом. При этом веб-службы заранее ничего не знают о приложении, которое их вызовет, а приложение не знает, каким образом веб-службы выполняют свою задачу. Следовательно, SOA может рассматриваться как способ построения Grid-систем, который позволяет объединять разнородные ресурсы, путём комбинации слабосвязанных и взаимодействующих сервисов. Эти сервисы будут взаимодействовать на основе строго определённого кроссплатформенного интерфейса. Определение интерфейса скрывает языково-зависимую реализацию веб-службы.

Таким образом, можно выделить следующие достоинства применения SOA для построения распределенных вычислительных систем:

– Использование SOA позволяет создать не жестко связанную систему, в которой клиент службы и реализация службы имеют в общем случае список доступных для всех служебных действий и определенную структуру данных.

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

– Платформы и языки программирования могут быть различны как у клиента, так и у службы.

– Разделение задач. Реализация службы и клиента может выполняться разными разработчиками.

Windows Communication Foundation

Проанализировав требования к системе распределенных вычислений и наиболее распространенные на данный момент аналоги, авторы при выборе программной платформы остановились на платформе .NET и программном фреймворке Windows Communication Foundation (WCF) от компании Microsoft [2, 6]. При реализации модулей системы предполагается активно использовать стандарт OpenCL. Это позволит добиться максимальной независимости от архитектуры клиентских ЭВМ и одновременно с этим позволит прозрачно использовать GPU и FPGA, для значительного ускорения проводимых расчетов.

pic_63.wmf

Рис. 1. Работа службы

WCF – это самый простой способ предоставлять и использовать службы на платформе Microsoft. Пользуясь WCF, разработчики могут сосредоточиться на приложениях, а не на коммуникационных протоколах. Это классический пример инкапсуляции технологии в инструментальных средствах [2].

Предлагаемая архитектура

Система для высокопроизводительных вычислений, разработанная в соответствии с сервис-ориентированной архитектурой, была реализована как набор веб-служб, взаимодействующих по протоколу SOAP. Данный протокол используется для реализации удалённого вызова процедур и для обмена произвольными сообщениями между узлами системы в формате WSDL. Разнородные вычислительные ресурсы (CPU, GPU и FPGA) клиентов предоставляются как сервис и реализованы как набор веб-служб, т.е. они представляют собой идентифицируемую веб-адресом программную систему со стандартизированными интерфейсами. Вычислительные ресурсы распределенной вычислительной системы, реализованные как веб-службы, могут взаимодействовать друг с другом, с сервером и со сторонними приложениями посредством сообщений, основанных на протоколе SOAP.

Наш проект не предполагает разработку и внедрение нового фреймворка на основе SOA. Вместо этого предложен способ предоставления вычислительных ресурсов с множеством настраиваемых сервисов WCF, который может преодолеть ограничения традиционных веб-служб XML.

В общем виде архитектура разработанной гибридной реконфигурируемой системы для высокопроизводительных вычислений приведена на рис. 2. Любая вычислительная задача, решаемая на представленной системе, состоит из клиентской и серверной частей. Основная вычислительная нагрузка ложится на клиентов, которые предоставляют свои вычислительные ресурсы в качестве WCF-сервиса [2].

Серверная часть представляет собой WCF-клиент, который по локальной сети или через Интернет обращается к вычислительным ресурсам клиентов. Основными функциями серверной части разработанной гибридной системы являются: оценка производительности клиентов и скорости соединения; мониторинг клиентов и процесса вычисления; окончательная обработка результатов вычислений, полученных от клиентов.

Экспериментальные исследования

Для экспериментальных исследований на предлагаемой платформе были выбраны алгоритмы Deep Learning, поскольку это все более популярная тема в области искусственного интеллекта и одна из самых востребованных областей в компьютерной науке [5]. Применение алгоритмов Deep Learning позволило создавать системы, которые способны распознавать зашумленные и искаженные предметы на фотографиях, делать сложные предсказания о возможном будущем поведении человека в видеопотоке, анализировать текстовую информацию и т.п. При этом реализация данных алгоритмов требует высокопроизводительных вычислений.

На данный момент многими разработчиками и исследователями в области Deep Learning используется библиотека TensorFlow [3]. TensorFlow – это новая библиотека для создания систем машинного обучения с открытым исходным кодом от Google.

pic_64.wmf

Рис. 2. Архитектура предлагаемой системы для высокопроизводительных вычислений

Тестовые наборы данных

Набор данных (Datasets)

Размер

Кол-во параметров

Скрытых слоев

Скрытых нейронов

MNIST

60 K×784 = 39,2 Mб

1,8 M

2

512

CIFAR-10

60 K×1024 = 170 Мб

4,1 M

2

1024

Molecular

150 К×2871 = 430 Мб

14,2 M

3

2048

pic_65.tif

Рис. 3. Результаты экспериментальных исследований

Для экспериментальных исследований были использованы тестовые наборы данных (таблица), которые чаще всего используются при сравнении алгоритмов Deep Learning: MNIST – это набор изображений рукописных цифр; CIFAR-10 – это набор цветных изображений 10 различных классов; Molecular – набор молекулярной активности веществ для создания лекарств [3– 5].

В последних трех столбцах таблицы указаны параметры реализованных глубоких нейронных сетей.

На рис. 3 показаны результаты обучения глубоких нейронных сетей на разработанной платформе.

Для исследований были построены сети с 2, 4 и 6 клиентами. Из этих результатов видно, что у предлагаемой системы такой же недостаток, как и у подобных ей систем: чем больше передаваемый объем данных по сети, тем ниже эффект от ее использования.

Для преодоления этого недостатка необходимо учитывать объем передаваемых данных по сети и подбирать соответствующие алгоритмы. Наиболее часто используемый метод оптимизации для обучения глубоких нейронных сетей – это стохастический градиентный спуск (SGD). Классический алгоритм SGD по своей сути является последовательным, что делает нецелесообразным его применение к очень большим наборам данных, т.к. требуется много времени для передачи данных последовательным способом.

Для распределенного обучения нейронных сетей мы применили асинхронный стохастический градиентный спуск [4]. Основная особенность этого алгоритма состоит в том, что на каждом клиенте находится свой собственный экземпляр данных и обучаемая модель. Это значительно сокращает нагрузку на сеть. Результаты экспериментов показаны на рис. 4.

Из этого графика видно, что предпринятые меры позволили добиться эффективности в расчетах на разработанной платформе. То есть с добавлением клиентов в сети растет и скорость вычислений.

pic_66.tif

Рис. 4. Результаты экспериментальных исследований алгоритма асинхронного стохастического градиентного спуска

Выводы

Разработанная архитектура предлагает больше гибкости, простоты и совместимости, которые необходимы, чтобы обеспечить интеграцию между сетевыми ресурсами. Предлагаемая платформа не предназначена для замены или вытеснения других Grid-систем. Вместо этого она дает возможность использования в едином вычислительном процессе различных платформ (CPU, GPU, FPGA) на базе сервис-ориентированной архитектуры, а использование OpenCL позволяет создать в рамках этой сети гетерогенную вычислительную среду. Применяя технологию распределенных вычислений и задействовав неиспользуемые ресурсы персональных компьютеров, система позволяет снизить стоимость вычислений на единицу производительности.

Работа выполнена при частичной финансовой поддержке грантов РФФИ № 16-37-60016, № 14-07-00816.


Библиографическая ссылка

Ляшов М.В., Берёза А.Н., Бабаев А.М., Алексеенко Ю.В., Авдеева Т.Г. ПРИМЕНЕНИЕ СЕРВИС-ОРИЕНТИРОВАННОЙ АРХИТЕКТУРЫ ДЛЯ СОЗДАНИЯ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ // Фундаментальные исследования. 2016. № 10. С. 312-316;
URL: https://fundamental-research.ru/article/view?id=40851 (дата обращения: 22.08.2026).