Организация обработки единого потока сообщений в распределенной вычислительной среде

УДК 004.056

Е.А. Родин, А.С. Голев

Организация обработки единого потока сообщений в распределенной вычислительной среде

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

Научно-технический прогресс по сравнению с другими отраслями не имеет прецедентов в современном мире. После изобретения транзистора и практически сразу последовавшего за этим появления первых компьютеров началась эпоха современных компьютеров [1].

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

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

Добиваться повышения производительности компьютеров просто за счет увеличения тактовой частоты становится все сложнее, так как появляется проблема отвода тепла (одна из проблем). Поэтому разработчики обратили свое внимание на параллелизм как на средство ускорения вычислений.

В настоящее время наиболее приоритетным и эффективным как по технологическим, так и по экономическим показателям является использование для этих целей гетерогенных распределённых вычислительных систем. Основой таких систем в ряде случаев, например Google, Yandex и т.п., являются неспециализированные серверы, соединённые по технологии Ethernet и обладающие мощностью обычных персональных компьютеров, представляющие собой фактически единый вычислительный ресурс огромной мощности. Использование подобных принципов позволяет значительно снизить как стоимость планового обслуживания и постепенной замены выходящего из строя оборудования, так и, при соответствующей программной архитектуре, упростить обслуживание и обновление программного обеспечения.

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

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

Проблемам построения и классификации распределённых систем посвящено множество литературы [1, 4, 6 и др.]. Все определения сходятся в том, что основными чертами

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

Существующая модель системы мониторинга специальной информации представлена на рис. 1.

Внешние источники данных

Приемные комплексы:

1. Прием данных

2. Предварительный отбор

Комплексы отлаженной обработки !

Потребитель

инфор-

мации

Рис. 1. Схема модели потоков данных

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

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

Иллюстрацию возможного прироста производительности системы за счёт увеличения количества вычислителей, а также определение возможного ограничения роста производительности поможет произвести закон Амдала (также закон Амдаля-Уэра). В результате этого, с учётом структуры алгоритма решаемой задачи, доли последовательных вычислений а и доли распараллеливаемых вычислений (1 - а) - можно оценить как пороговое значение ускорения, которое для вычислительной системы из р процессоров не может превышать, по сравнению с однопроцессорной системой, величины

ЯР =-п\, .

а + (1 - а)/р

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

Из таблицы видно, что полностью линейный прирост производительности возможен в системе, совсем не содержащей последовательных вычислений (а = 0). Если доля последовательных вычислений составляет 25%, то при увеличении числа вычислителей в 10 раз ускорение будет составлять 7,75 раза, т.е. эффективность 77,5%, а при увеличении в 1000 раз эффективность будет составлять 75%. Если в расчётах учесть время, необходимое для передачи данных между узлами системы, то зависимость времени вычислений от

Оценка производительности системы по закону Амдала

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

В настоящее время различают несколько различных уровней и видов параллельных архитектур систем [1]:

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

Р, % а

10 100 1000

0 10 100 1000

10 9,099 90,09 900,1

25 7,750 75,25 750,2

40 6,4 60,39 60,04

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

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

3. Мультипроцессоры с общей памятью - системы, содержащие два и более самостоятельных процессоров, совместно использующих общую память; различают системы с однородным доступом к памяти (UMA), где время доступа к любым модулям одинаково, NUMA системы, в которых физическое адресное пространство системы также общее, но время доступа процессоров к «своим модулям» меньше, чем к модулям других процессоров, также в настоящее время получают развитие системы с разделяемым кешем (COMA).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рис. 2. Мультисервисная организация системы мониторинга

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

мяти, диска и процессора: Wi

W

disk

Wi

CPU

которые определяют степени гетеро-

генности согласно следующим формулам:

HM -'

HD -

He-'

IWZ7 -i—1 Wmem )2

n

I (Wdg -4 i—1 Wdisk )2

\ n

Il (Wa%U -i—1 wCPU )2

где

mem avg

W

disk avg !

Wa

CPU avg

- среднеарифметические величины весовых коэффициентов

disk

Wi

CPU

памяти, диска и процессора соответственно.

Весовые коэффициенты производительности ^'{пет , , У~ определяются как

соотношение характеристики производительности г-го устройства (памяти / диска / процессора) и производительности самого быстрого соответствующего устройства. На примере диска имеем

W

disk

D

n ТЛ

max j=i Dj

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

1

Di -

Si + Ri +-

d

Bd

disk

где В^^ - пропускная способность диска; Si - среднее время поиска данных; Я -среднее время вращения диска.

Таким образом, все более усиливается проявление проблем как реализации, так и эксплуатации существующих систем мониторинга обрабатываемой информации. В современных условиях становится все более очевидным, что «простой перенос» идеологии цен-

n

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

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

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

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

Литература

1. Таненбаум Э. Архитектура компьютера. - 5-е изд. - СПб.: Питер, 2007. - 844 с.

2. Куроуз Дж. Компьютерные сети. Многоуровневая архитектура интернета / Дж. Куроуз, К. Росс. - 2-е изд. - СПб.: Питер, 2004. - 765 с.

3. Олифер В.Г. Компьютерные сети. Принципы, технологии, протоколы / В.Г. Олифер, Н.А. Олифер. - СПб.: Питер, 2001. - 672 с.

4. Стефанюк В.Л. Локальная организация интеллектуальных систем. - М.: ФИЗМАТЛИТ, 2004. - 328 с.

5. Сухорослов О.В. Новые технологии распределенного хранения и обработки больших массивов данных. - М.: Ин-т системного анализа РАН, 2008. - 40 с.

6. Таненбаум Э. Распределенные системы. Принципы и парадигмы / Э. Таненбаум, М. ван Стен. - СПб.: Питер, 2003. - 877 с.

7. Барушкова Р.И. Классификационные системы научно-технической информации: учеб. пособие. - М.: ИПКИР, 1981. - 79 с.

8. Реброва М.П. Автоматическая классификация в системах обработки информации. Поиск документов. - М.: Радио и связь, 1983. - 97 с.

9. Требования к формату для классификационных данных: пер. с англ. / О.Н. Жло-бинская, Ю.Г. Селиванова. (Редколлегия). - СПб.: Рос. библ. Ассоц.; Рос. нац. библ., 1998. - 40 с.

Родин Евгений Александрович

Инженер ФГУП «ННИ Квант», г. Москва Эл. адрес: earodin@rambler.ru

Голев Антон Сергеевич

Инженер ФГУП «ННИ Квант», г. Москва Эл. адрес: a.s.golev@gmail.com

E.A. Rodin, A.S. Golev

Organization of the processing the united flow of the messages in portioned computing ambience

Possibility of usage of the heterogeneous distributed computing systems for creation of systems of monitoring of the special information is considered. The analysis of architectures of parallel systems is made. Is offered method of dynamic balancing of the load, allowing to arrange messages arriving in system taking into account dynamically varying productivity of the computing sites realising calls to a computing cluster and a cluster of databases.

Keywords: computer technologies, the information monitoring, the distributed computing systems, a method of dynamic balancing of load.