Scientific journal
Fundamental research
ISSN 1812-7339
"Перечень" ВАК
ИФ РИНЦ = 1,674

APPLICATION OF SERVICE ORIENTED ARCHITECTURE FOR DISTRIBUTED COMPUTING SYSTEMS

Lyashov M.V. 1 Bereza A.N. 2 Babaev A.M. 2 Alekseenko Yu.V. 2 Avdeeva T.G. 2
1 Don State Technical University
2 Institute of Entrepreneurship and Service sector (branch) of the Don State Technical University
The paper provides a solution to the problem of uniting heterogeneous computing resources into a unified heterogeneous system using service-oriented architecture (SOA) and the conception of Grid-computing, where computing resources of clients are presented as a service. The use of SOA for creating Grid-systems will allow the clients to implement integration of not only local separated heterogeneous computing resources, but also geographically separated ones. The suggested platform is not intended to replace or displace other Grid-systems. Instead of this, it gives the possibility of using different platforms based on SOA in a unified computing process. For experimental studies Deep Learning algorithms and datasets MNIST, CIFAR-10 have been chosen, which require high-performance computing.
high performance computing
service-oriented architecture
Grid-computing
heterogeneous system
.NET
Windows Communication Foundation
1. Danilov I.G. Servis-oriyentirovannaya arkhitektura kak osnova dlya postroyeniya sovremennykh raspredelonnykh sistem. Izvestiya YUFU. Tekhnicheskiye nauki. 2010. no. 7. рр. 168–173.
2. Cibraro P. Professional WCF 4: Windows Communication Foundation with .NET 4. Microsoft Press, 2010.
3. Dean J., Rajat M., et al. TensorFlow: Large-scale machine learning on heterogeneous systems. TensorFlow.org. Google Research. Retrieved 10 November 2015.
4. Dean J., Corrado G., et al. Large Scale Distributed Deep Networks. NIPS 2012: Neural Information Processing Systems, Lake Tahoe, Nevada, United States, December, 2012, pp. 1232–1240.
5. Li Deng and Dong Yu (2014), Deep Learning: Methods and Applications, Foundations and Trends in Signal Processing: Vol. 7: no. 3–4, pp. 197–387.
6. Lyashov M.V., Bereza A.N., Alekseenko J.V., Blanco L.M.L. The hybrid reconfigurable system for high-performance computing. Application of Information and Communication Technologies (AICT), 2015 9th International Conference on, Rostov on Don, 2015, pp. 258–262.
7. Shrihari, S.V., Pawan, K., Vishnu, M., Mahajan, S. Technological aspects of grid computing (2015) 2nd International Conference on Electronics and Communication Systems, ICECS 2015, art. no. 7124829, pp. 1463–1468.

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

В 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.