Скрытые проблемы распределенных вычислений

Кондратьев А.А. Kondratev A.A.

аспирант, инженер-исследователь, Исследовательский центр мультипроцессорных систем, ФГБУН «Институт программных систем им. А.К. Айламазяна Российской академии наук», Россия, г. Переславль-Залесский

УДК 004.75

СКРЫТЫЕ ПРОБЛЕМЫ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ

Работа посвящена области распределенных вычислений. Развитие локальных вычислительных сетей и появление глобальной сети Internet способствует активному развитию области в решении множества различных задач: численное решение систем дифференциальных уравнений большой размерности со многими переменными, имитационное и структурное моделирование объектов, проведение анализа поведения сложных систем различной природы, управление сложными промышленными и технологическими процессами в режиме реального времени и условиях неопределенности, обработка гигантских объемов информации. В статье предлагается оригинальная классификация основных направлений развития распределенных вычислений, которая в отличие от известных аналогов, классифицирующих развитие по направлениям (архитектура, структура, алгоритмы и др.), акцентирована на особенностях их применения. Классификация включает поисковые, облачные и социальные сервисы, проекты «добровольных вычислений» и онлайн-игр.

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

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

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

HIDDEN PROBLEMS OF DISTRIBUTED COMPUTING

The article proposes an original classification for main directions of distributed computing development, which is in contrast to the known analogues classifying areas of development (architecture, structure, algorithms, etc.) on the specifics of the application of distributed computing. The development of local area networks and emergence of a global network Internet promotes active development of region with many different problems: numerical solution of systems of differential equations of large dimension with many variables, simulation and

structural modeling of objects, analysis of the behavior of complex systems of various nature, and management of complex industrial process in real time and under uncertainty, processing huge amounts of information. Classification includes search, cloud and social services projects «volunteer computing» and online games.

The hidden problems associated with the issues of the best use of opportunities such calculations in key application areas (modeling, numerical methods, design, data processing) faced by users was highlighted by the basis of the classification. This problems are subject to review of this work. Among them are the lack of convenient high-level application development tools, technical problems and constraints of modern technical solutions for building high-performance data processing, lack of standards and development methodologies and modeling as the main means of building distributed systems, the narrow focus of the tasks that may be profitable and require the creation of complex solutions.

The paper describes author's opinion for each problem, the causes and conditions of its occurrence and formation. Finally, it describes the vision of how to overcome the problems described above with the obvious and hidden trends in the development of hardware and software. In particular, it proposed the creation of design methodologies and universal software-tools for building distributed computing systems based on a modular architecture, which will provide the ability to configure and development of the system and could significantly simplify the process of creating applications and expand the range of users.

Key words: distributed computing, grid, problems of distributed computing, parallel computing, volunteer computing, cluster, multi-processor systems, tools, boinc, cloud computing heavily services.

Введение

Развитие популярных пользовательских сервисов сопровождается активными исследованиями и разработками. Среди них следует выделить наиболее важные, способствующие развитию области в целом:

- распределенные вычисления (grid-системы);

- параллельные вычисления;

- распределенные файловые системы и базы данных;

- вычислительные фермы (фермы майнинга).

Описанные выше сервисы используют и обеспечивают развитие ключевых атрибутов распределенных вычислительных систем:

- хранение данных;

- организация вычислительного процесса;

- обеспечение обслуживания;

- отказоустойчивость и постоянная доступность.

Развитие локальных вычислительных сетей (ЛВС) и появление глобальной сети Internet способствует появлению различных удаленных сервисов, предоставляющих необходимые вычислительные ресурсы. Это частично решает проблему недостаточности собственных аппаратных средств пользователей, но в то же время вызывает ряд проблем, среди которых назовем:

- отсутствие удобных высокоуровневых инструментов разработки приложений;

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

- отсутствие стандартов и методологий раз-

работки и моделирования как основных средств построения распределенных систем;

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

Обсуждению этих проблем и способам их преодоления посвящена настоящая работа.

1. Распределенные вычисления

«Распределенные вычисления» - способ решения трудоемких вычислительных задач с использованием нескольких компьютеров, объединенных в параллельную вычислительную систему [1]. Подобные вычисления могут производить высокопроизводительные кластерные установки, снабженные вычислительными узлами, или ГРИД-системы. Существует большое количество задач, например, задачи численного моделирования, обработки потоков данных в реальном времени и многие другие, требующих использования распределенных вычислений. В том числе можно указать на следующие актуальные направления:

- численное решение систем дифференциальных уравнений большой размерности со многими переменными;

- имитационное и структурное моделирование объектов (например, 3D-моделирование) и проведение анализа поведения сложных систем различной природы;

- управление сложными промышленными и технологическими процессами в режиме реального времени и условиях неопределенности;

- обработка гигантских объемов информации, например, от космических систем ДЗЗ и др. [2].

В некоторых вопросах распределенные системы

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

2. Классификация систем распределенных вычислений

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

- поисковые сервисы;

- онлайн-игры (в частности, MMORPG [4]);

- проекты «добровольных вычислений» [5];

- социальные сети;

- облачные сервисы (обработки и хранения данных).

Архитектуры и принципы функционирования социальных сетей и систем хранения данных (например, YouTube) наглядно демонстрируют применение технологий и методов построения высокона-груженных сервисов. Стоит отметить, что системы «добровольных вычислений» обычно не приносят участникам прямой прибыли (кроме систем генерации крипто-валют). Характерным примером может служить проект SETI [6].

3. Проблемы распределенных вычислений

Рассмотрим более детально суть скрытых проблем, являющихся, на наш взгляд, атрибутом применения распределенных вычислений. Следует отметить, прежде всего, что при организации вычислений, связанных с обработкой данных, важным вопросом является не только их хранение внутри распределенной сети, но и рациональное распределение с точки зрения эффективного решения задачи. Этим обычно не занимаются пользователи, т. к. подобные тонкости являются скрытыми, в особенности при использовании ими некоторых готовых решений. Проблемы остаются даже при создании новых систем распределенных вычислений профессионалами, не учитывающими полностью специфику прикладных областей. Создаваемые при этом решения не предусматривают возможности адаптации к задачам пользователей. Ряд современных статей [7, 8] свидетельствует об активной работе над задачами построения архитектуры вычислительных сетей и комплексов, а также распределения операций по вычислительным узлам. Тем не менее нами выделяется ряд основополагающих проблем, связанных с разработкой приложений распределенных вычислений.

3.1. Нехватка инструментов и средств разработки

Средствами разработки являются как различные библиотеки, так и инструментарий, в том числе интегрированные среды разработки (IDE). Основу составляют библиотеки (например, Globe [9]) или готовое специализированное программное обеспечение в виде платформ для вычислений (например, BOINC [10]). В то же время нет инструментов, совмещающих в себе простоту и удобство использования с широкими возможностями применения распределенных вычислений. Большинство разработок начинается «с чистого листа», что требует реализации полной инфраструктуры системы, вместо сосредоточения сил на разработке конкретной ее подсистемы или алгоритма.

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

3.2. Технические проблемы и ограничения

Одна из основных проблем - невозможность

дальнейшего развития высокоскоростного сетевого оборудования, которое могло бы соперничать с внутренними соединениями. Увеличение скорости передачи данных по старым технологиям невозможно из-за различных физических ограничений [11].

На данный момент нет решений описанной проблемы, но есть исследования в области разработки новых протоколов передачи данных и оптимизации старых [12].

3.3. Моделирование как основа функционирования и безопасности

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

- обеспечение защиты системы от внешнего и внутреннего воздействия;

- обеспечение конфиденциальности соединения и данных клиента;

- поддержание целостности и отказоустойчивости системы.

Для решения задачи распределенной обработки, включая рациональное ее разбиение на части, обеспечение их взаимодействия, целостности данных, а также безопасного выполнения, требуется применение различных методов моделирования. На данный момент, к сожалению, не создано общепринятых стандартов проектирования и адекватных (близких к реальности) методов моделирования распределенных систем [13].

3.4. Узкая направленность задач

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

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

4. Предложения по преодолению скрытых проблем

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

1. Организация быстрого доступа к данным в процессе вычислений.

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

3. Развитие и разработка новых сетевых протоколов передачи данных.

4. Разработка универсальных методов моделирования и их применение при разработке распределенных приложений.

5. Интеграция и обобщение методов решения конкретных задач для создания возможности решения произвольной задачи в области распределенных вычислений.

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

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

Инструментарий должен сочетать ряд возможностей, среди которых можно выделить:

- построение гибкой системы с масштабируемой архитектурой;

- автоматические механизмы балансировки нагрузки;

- возможность использования как прикладным пользователем, так и программистом.

На данный момент нет решения, удовлетворяющего всем перечисленным требованиям.

Заключение

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

Исследования проводились в рамках работ по Договору № 124-ВС06/13/423 «Исследования и разработка архитектурных, аппаратных и программных технических решений и создание экспериментальных средств блочно-параллельной обработки космической информации в высокопроизводительных вычислительных системах с производительностью кластера не менее 400 ГФлопс» (шифр: Мониторинг-СГ-2.5.3.1).

Список литературы

1. Распределенные вычисления [Электронный ресурс] // Википедия - свободная энциклопедия. -URL: https://m.wikipedia.org/wiki/Распределенные_ вычисления (дата обращения: 15.06.2015).

2. Распределенные и параллельные вычисления [Электронный ресурс] // Викиучебник. - URL: https:// ru.wikibooks.org/wiki/Распределенные_и_парал-лельные_вычисления (дата обращения: 15.06.2015).

3. Ализар А. Вычислительная мощь сети Bitcoin в 250 раз обогнала все суперкомпьютеры мира вместе взятые [Электронный ресурс] /А. Ализар // Хакер. - 2013. - URL: https://xakep.ru/2013/11/29/61683 (дата обращения: 15.06.2015).

4. Massively multiplayer online role-playing game [Электронный ресурс]// Википедия - свободная энциклопедия. - URL: https://en.wikipedia.org/wiki/ Massively_multiplayer_online_role-playing_game (дата обращения: 15.06.2015).

5. Добровольные вычисления [Электронный ресурс] // Википедия - свободная энциклопедия. - URL: https://ru.wikipedia.org/wiki/Добровольные_ вычисления (дата обращения: 15.06.2015).

6. Самые опасные распределенные вычисления [Электронный ресурс] // Хакер. - 2008. - URL: https://xakep.ru/2008/01/14/41851/ (дата обращения: 15.06.2015).

7. Ильин П.Е. Организация территориально-распределенных вычислений с использованием декомпозиционных моделей [Текст]/ П.Е. Ильин // Научная электронная библиотека disserCat. -URL: http://www.dissercat.com/content/organizatsiya-territorialno-raspredelennykh-vychislenii-s-ispolzovaniem-dekompozitsionnykh-m (дата обращения: 15.06.2015).

8. Шамакина А.В. Обзор технологий распределенных вычислений [Текст]/ А.В. Шамакина // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. - 2014. - J№ 3. - URL: http://cyberleninka. ru/article/n/obzor-tehnologiy-raspredelennyh-vychisleniy (дата обращения: 15.06.2015).

9. The Globe Project [Электронный ресурс]. -URL: http://www.cs.vu.nl/~philip/globe/ (дата обращения: 27.04.2015).

10. BOINC [Электронный ресурс]// Википедия -свободная энциклопедия. - URL: https://ru.wikipedia. org/wiki/BOINC (дата обращения: 15.06.2015).

11. Лушакова А. Крах сети Интернет наступит через 8 лет - прогнозы специалистов по телекоммуникациям [Электронный ресурс]// Новостной портал «The Jewish Times». - URL: http://jtimes.ru/news/ nauka-i-tekhnika/14141-al-krah-internet (дата обращения: 15.06.2015).

12. Компьютер сгенерировал эффективные, но непонятные человеку алгоритмы ускорения TCP [Электронный ресурс] // Хабрахабр. - URL: http://habrahabr.ru/post/187278/ (дата обращения: 15.06.2015).

13. Талалаев А.А. Распределенная система защиты облачных вычислений от сетевых атак [Текст]/ А.А. Талалаев, И.П. Тищенко, В.П. Фраленко, В.М. Хачумов // Вестник СибГУТИ. - 2013. - J№ 3. - URL: http://vestnik.sibsutis.ru/uploads/1377745931_1452. pdf (дата обращения: 15.06.2015).

References

1. Raspredeljonnye vychislenija [Jelektronnyj resurs] // Vikipedija - svobodnaja jenciklopedija. -URL: https://ru.wikipedia.org/wiki/Raspredeljonnye_ vychislenija (data obrashhenija: 15.06.2015).

2. Raspredelennye i parallel'nye vychislenija [Jelektronnyj resurs]// Vikiuchebnik. - URL: https:// ru.wikibooks.org/wiki/Raspredelennye_i_parallernye_ vychislenija (data obrashhenija: 15.06.2015).

3. Alizar A. Vychislitel'naja moshh' seti Bitcoin v 250 raz obognala vse superkomp'jutery mira vmeste vzjatye [Jelektronnyj resurs] /A. Alizar // Haker. -2013. - URL: https://xakep.ru/2013/11/29/61683 (data obrashhenija: 15.06.2015).

4. Massively multiplayer online role-playing game [Jelektronnyj resurs] // Vikipedija - svobodnaja jenciklopedija. - URL: https://en.wikipedia.org/wiki/ Massively_multiplayer_online_role-playing_game (data obrashhenija: 15.06.2015).

5. Dobrovol'nye vychislenija [Jelektronnyj resurs]// Vikipedija - svobodnaja jenciklopedija. - URL: https:// ru.wikipedia.org/wiki/Dobrovornye_vychislenija (data obrashhenija: 15.06.2015).

6. Samye opasnye raspredelennye vychislenija [Jelektronnyj resurs]// Haker. - 2008. - URL: https:// xakep.ru/2008/01/14/41851/ (data obrashhenija: 15.06.2015).

7. Il'in P.E. Organizacija territorial'no-raspredelen-nyh vychislenij s ispol'zovaniem dekompozicionnyh modelej [Tekst]/ P.E. Il'in // Nauchnaja jelektronnaja biblioteka disserCat. - URL: http://www.dissercat.com/ content/organizatsiya-territorialno-raspredelennykh-vychislenii-s-ispolzovaniem-dekompozitsionnykh-m (data obrashhenija: 15.06.2015).

8. ShamakinaA.V. Obzor tehnologij raspredelennyh vychislenij [Tekst] / A.V. Shamakina // Vestnik JuUrGU. Serija: Vychislitel'naja matematika i informatika. -2014. - № 3. - URL: http://cyberleninka.ru/article/n/ obzor-tehnologiy-raspredelennyh-vychisleniy (data obrashhenija: 15.06.2015).

9. The Globe Project [Jelektronnyj resurs]. - URL: http://www.cs.vu.nl/~philip/globe/ (data obrashhenija: 27.04.2015).

10. BOINC [Jelektronnyj resurs]// Vikipedija -svobodnaja jenciklopedija. - URL: https://ru.wikipedia. org/wiki/BOINC (data obrashhenija: 15.06.2015).

11. Lushakova A. Krah seti Internet nastupit cherez 8 let - prognozy specialistov po telekommunikacijam [Jelektronnyj resurs] // Novostnoj portal «The Jewish Times». - URL: http://jtimes.ru/news/nauka-i-tekhnika/14141-al-krah-internet (data obrashhenija: 15.06.2015).

12. Kompjuter sgeneriroval jeffektivnye, no neponjatnye cheloveku algoritmy uskorenija TCP [Jelektronnyj resurs] // Habrahabr. - URL: http:// habrahabr.ru/post/187278/ (data obrashhenija: 15.06.2015).

13. TalalaevA.A. Raspredeljonnaja sistema zashhity oblachnyh vychislenij ot setevyh atak [Tekst]/ A.A. Talalaev, I.P. Tishhenko, V.P. Fralenko, V.M. Hachumov // Vestnik SibGUTI. - 2013. - № 3. - URL: http:// vestnik.sibsutis.ru/uploads/1377745931_1452.pdf (data obrashhenija: 15.06.2015).