УДК 004.75
ИЕРАРХИЧЕСКИЕ МЕТОДЫ УЛУЧШЕНИЯ МАСШТАБИРУЕМОСТИ И ЭФФЕКТИВНОСТИ РАСПРЕДЕЛЕННЫХ РАСЧЕТОВ В СИСТЕМЕ МЕТАКОМПЬЮТИНГА Х-СОМ
С. И. Соболев
HIERARCHICAL METHODS OF PERFORMANCE AND EFFICIENCY IMPROVING FOR DISTRIBUTED COMPUTATIONS WITH X-COM METACOMPUTING SYSTEM
S. I. Sobolev
Система метакомпьютинга X-Com - инструментарий для организации распределенных неоднородных вычислительных сред и проведения расчетов в таких средах. В статье обсуждаются архитектурные решения, примененные в системе X-Com последнего поколения, направленные на улучшение масштабируемости и повышение эффективности распределенных расчетов.
Ключевые слова: Х-Сот, метакомпъютинг, распределенные вычисления
An X-Com metacomputing system is a software toolkit for an organization of distributed heterogeneous computational environments and performing computations in such environments. In this paper the architectural solutions applied in the X-Com system of last generation and aimed to improving of scalability and efficiency of distributed computations are discussed.
Keywords: X-Com, metacomputing, distributed computations
Введение
Применение технологий распределенных вычислений для решения больших вычислительно сложных задач стало привычным фактом. Однако уже сейчас на этом пути встают проблемы, связанные с координацией огромного числа взаимодействующих компьютеров и потоков данных между ними. Технологически несложно объединить для работы над единой задачей, скажем, пять суперкомпыотерных комплексов, находящихся в различных регионах России, однако эффективность такого решения будет под вопросом. Предположим, обработка одной независимой порции задачи занимает в среднем 5 минут, а всего над задачей работают 6 тысяч процессоров распределенной среды. Организуя расчеты по обычной клиент-серверной схеме, получаем, что сервер должен корректно обрабатывать до 40 клиентских запросов в секунду. Такая нагрузка на сервер распределенных вычислений имеет тот же порядок, что и суммарная нагрузка на веб-сайты компании Google, обслуживаемые большими фермами серверов. При этом мы не принимаем в расчет затраты ресурсов сервера на генерацию вычислительных порций и обработку результатов. При использовании шифрования данных нагрузка на сервер увеличится еще на порядок. Кроме того, приведенные
в качестве примера 6 тысяч процессоров - это реалии сегодняшнего дня, однако уже сейчас в России строятся суперкомпьютеры с десятками тысяч процессорных ядер. Мы естественным образом приходим к необходимости использования распределенных и иерархических технологий при организации самих распределенных вычислений.
В НИВЦ МГУ имени М.В. Ломоносова разрабатывается система метакомпьютинга X-Сот [1,4] — программный инструментарий, предназначенный для организации распределенных неоднородных вычислительных сред и проведения вычислений в таких средах. Базовыми компонентами системы является сервер задачи и клиент Х-Com. Сервер задачи отвечает за разбиение конкретной прикладной задачи на независимые вычислительные порции, распределение их на вычислительные узлы и объединение получаемых результатов. Клиенты Х-Com, устанавливаемые на узлах, принимают от сервера данные, запускают вычислительные модули прикладной задачи и отправляют результаты обработки порций обратно на сервер.
В последние два года [6, 7] основная работа над системой была сосредоточена на улучшении ее архитектуры с целью повышения масштабируемости и эффективности проводимых с помощью нее расчетов. Наиболее важные реализованные и планируемые архитектурные решения обсуждаются в настоящей статье.
1. Иерархия «сервер задач - сервисы запросов»
Требование обработки сервером задач крайне интенсивного потока запросов от вычислительных узлов приводит к необходимости распределения его работы на отдельные процессы, способные выполняться на разных физических машинах. Естественным представляется разбиение функциональности сервера задач на процесс-координатор, обладающий полной информацией о ходе задачи, и сервисы обработки запросов, взаимодействующие непосредственно с вычислительными узлами. Такая архитектура будет особенно эффективна при включенном шифровании данных, требующем дополнительных затрат процессорного времени. В этом случае шифрование и дешифрование может проводиться на выделенных компьютерах, нагрузка на компьютер с процессом-координатором при этом существенно снижается.
В серверной части Х-Com выделяются следующие типы запросов и соответствующих им сервисов (рис. 1). Сервис TSR отвечает за выдачу первоначальной информации о задаче. Файловый сервис - это фактически файловый сервер, у которого клиент запрашивает файлы прикладной задачи и вспомогательные файлы, если они необходимы (отметим, что в качестве альтернативного файлового сервиса может использоваться любой httpd-сервер). Через сервис REQ клиент запрашивает очередную порцию данных у сервера задачи. Результаты выполнения прикладной задачи над данными очередной порции клиент пересылает сервису ASW. Сервис STAT предназначен для предоставления статистической информации о ходе расчета в форматах HTML и XML.
Обмен данными между клиентами Х-Com и сервисами запросов производится по специальному протоколу на основе XML поверх стандартного протокола HTTP в сети TCP/IP. Обмен данными между сервисами запросов и процессом-координатором ведется по более простому и экономичному протоколу, причем осуществляться он может как поверх TCP/IP (сервер задач и процессы запросов могут работать на различных компьютерах; поддерживается в любой ОС), так и посредством локальных сокетов UNIX (сервер задач и процессы запросов должны работать на одном компьютере; поддерживается только для ОС семейства UNIX/Linux). Первый способ более универсален, второй обеспечивает более высокую производительность при работе всех серверных процессов на одной физической машине.
Сервер задачи может быть запущен в режиме любого из сервисов вручную (в доку-
Сервер задачи Х-Сот
Процесс-координатор w ■
\ Серверная часть ...... f..............f...........■ ■ 4 прикладной
Рис. 1. Структура сервера задачи Х-Сот
ментации [2] данный режим обозначен как Subserver). При этом в настройках указываются точка доступа (пара хост-порт или имя сокета) процесса-координатора.
2. Иерархия «подсистема управления заданиями — серверы задач»
Работа в масштабной распределенной среде - это, в том числе, огромное число задач и пользователей. Запуск и контроль прохождения заданий в таких средах вручную попросту невозможен - слишком много факторов нужно учесть. Необходимы простые и понятные средства взаимодействия с пользователями, а также механизмы централизованного управления потоками заданий. В системе Х-Com эти функции обеспечиваются подсистемой управления заданиям XQSERV. Прототип подсистемы XQSERV был описан в работе [3], настоящая статья описывает актуальное состояние подсистемы.
Подсистема управления заданиями XQSERV состоит из серверной части, отвечающей за распределение задач в вычислительной среде, и клиентской, реализующей пользовательские интерфейсы (рис. 2). Эти интерфейсы позволяют пользователям работать с вычислительной средой с использованием привычных метафор традиционных высокопроизводительных комплексов - поставить задание или набор заданий в очередь, проконтролировать ход их выполнения, удалить задание из очереди. Базовый метод работы с клиентом подсистемы управления заданиями - вызов клиента из командной строки с необходимыми опциями. Общение между клиентом и сервером XQSERV может осуществляться двумя способами -через сокеты UNIX либо поверх TCP/IP. Первый способ работоспособен только в операционной среде UNIX/Linux и только в том случае, когда клиент и сервер XQSERV запущены на одной физической машине. Этот способ средствами операционной системы обеспечивает получение сервером корректной информации об имени пользователя, вызвавшем клиента. Второй способ обмена данными (TCP/IP) такой информации, вообще говоря, не предоставляет, однако он более универсален и может использоваться при работе клиента на удаленной машине с отличной от серверной операционной системой.
Еще один пользовательский интерфейс, реализуемый подсистемой XQSERV - вебинтерфейс, позволяющий отслеживать общее состояние очереди заданий и ход выполнения каждой задачи из очереди.
\
Сервер ХОБЕРЛ/
/
г
Сервер задачи Х-Сот
Сервер задачи Х-Сот
Сервер задачи Х-Сот
Рис. 2. Подсистема управления заданиями ХО^ЕИУ
Сервер подсистемы управления заданиями ХС^ЭЕВУ (управляющий сервер) реализует логику распределения заданий в вычислительной среде. За каждое конкретное задание отвечает свой сервер задачи; с точки зрения управляющего сервера запуск задания означает запуск соответствующего сервера задачи. В простейшем случае управляющий сервер организует линейную очередь, запуская все поступающие от пользователей задания последовательно на всех доступных ресурсах. Такой метод распределения заданий реализует основную идею метакомпьютерных вычислений, а именно использование максимального объема ресурсов для решения задачи, и позволяет достичь максимальной суммарной производительности подключенных ресурсов. Этот метод, однако, не гарантирует максимальной эффективности их использования, в частности, не учитывая требования прикладных задач к тем ресурсам, на которых они будут выполняться. С другой стороны, в ряде случаев может возникнуть необходимость в одновременной работе более одной задачи. Очевидно, необходимы методы динамического разбиения вычислительной среды на сегменты с заданными свойствами, каждый из которых будет выделяться одной задаче, при этом при изменении состава заданий состав сегментов также будет меняться.
3. Иерархическая сегментация среды
Задачи в распределенной среде могут предъявлять различные требования к ресурсам, на которых они должны выполняться. Рассмотрим типичный случай [5]: предположим, что время обработки каждой вычислительной порции достаточно велико, при этом оно существенно зависит от тактовой частоты процессора, а среда объединяет узлы как с высокой, так и низкой частотой СР11. В этом случае вполне возможен вариант, при котором слабые узлы, получив свои порции в самом начале обработки задания, не закончат их обработку до момента завершения всего расчета. Подключение таких узлов для данного расчета окажется нецелесообразным; в то же время, их вполне можно было бы использовать, например, для решения относительно небольших задач либо для тестовых запусков приложений.
При постановке задания в очередь ХС^ЕПУ можно указать следующие требования к ре-
сурсам: минимальную и максимальную тактовую частоту СРХ1 и/или производительность, минимальный и максимальный объем оперативной памяти, минимальное и максимальное число процессорных ядер, тип операционной системы, процессорную архитектуру. Можно также указать список кластеров, на которых разрешается расчет (принадлежность к кластерам определяется по идентификаторам вычислительных узлов).
] бёррер задачи | , Сервер задачи■ рервер задами ) > Сервер задачи )
г' )Й?ого-'г Г',! Х-Сот ' Ч [ ' Х-Сот :) I-; Х-Сот .
-- -'Менеджер ! /Менеджер \ ....
кшёнтев ,■ клиентов ;
Рис. 3. Примеры сегментации распределенной среды
Чтобы реализовать динамическое перераспределение вычислительных узлов между заданиями, в состав подсистемы управления заданиями ХО^ЕКУ включен менеджер клиентов. Менеджер клиентов представляет собой процесс-сервер, к которому обращаются при первом запуске все клиенты на вычислительных узлах. Менеджер перенаправляет вычислительные узлы к тем серверам задач, требованиям которых они соответствуют, либо (при отсутствии явно указанных требований) распределяет клиентов поровну на каждую запущенную задачу. Если имеется несколько одновременно работающих задач, и подключающийся узел удовлетворяет требованиям каждой из них, он будет перенаправлен к задаче, запущенной раньше всех. После завершения задачи клиенты на узлах вновь обращаются к менеджеру за новым назначением. Примеры возможной сегментации распределенной среды приведены на рис. 3.
4. Иерархия промежуточных серверов
Рассмотренные выше механизмы иерархической сегментации среды реализуют логическую группировку вычислительных ресурсов. Однако зачастую ресурсы распределенной среды уже имеют явно выраженную физическую группировку, представляя собой, например, узлы вычислительных кластеров или машины компьютерных классов. Как правило, такие узлы размещены в рамкой закрытой локальной сети, из которой прямой доступ к серверу задач через Интернет может отсутствовать по соображениям безопасности. В этом случае в распределенную среду может быть введен еще один компонент - промежуточный (буферизирующий) сервер. С точки зрения нижележащих узлов промежуточный сервер представляется единственным сервером, доступным данным узлам, с точки же зрения центрального сервера промежуточный сервер сам представляется вычислительным узлом. Помимо организации доступа в закрытую сеть, промежуточный сервер несет еще одну важную функцию - буферизацию обмена данными между «своими» узлами и центральным сервером, снижая тем самым нагрузку на него за счет минимизации числа сетевых соединений (это достигается группировкой нескольких порций в едином запросе) и оптимизации
сетевого трафика (клиент на вычислительном узле скачивает необходимые файлы не с центрального, а с ближайшего к нему промежуточного сервера).
Сервер задачи
Процесс-координатор ^ с'^ж ! прикладной |
Процесс-координатор Процесс-координатор -и
ф ф _гЬ —ф • точного ' ■ - 1 п —®—■ ■—^— ‘—^‘ ' точного
TSR W PiLE W REQ WASW ш сервера ■ 1 ПрОМбЖуТОЧНЫб , TSR W. FILE W REQ щ ASW щ \ сервера
-штЖ.-j 1 серверы ШЯ ШШЯШШ ЯН-
( Процесс-координатор * _
--Ф_— Ф ! точного !
wjf mJi REQ ^ftSW *! сервера
:: .-’Ч:.. Клиент V <, .уУ‘ { Клиент ^ Клиент
* Клиент \ \ Х-Сот :: у’ Клиент \ '"ч ■! Клиент Х-Сот \ Клиент \ к Х-Сот г
, Х-Сот • л%. .г' Х-Сот Клиент Х-Сот Ч.____^ х-Сот
:'ч ^ \ Х-Сот ;
Рис. 4. Организация вычислений с использованием промежуточных серверов
Механизм промежуточных серверов достаточно подробно описан в предыдущих публикациях по системе Х-Сош, в частности, в [7]. С точки зрения реализации промежуточный сервер - это один из режимов работы сервера задачи (в документации [2] обозначен как Proxy), при котором в качестве «задачи» подключается модуль, реализующий общение с вышестоящим сервером (полностью аналогично клиентской части Х-Com). Промежуточные серверы позволяют формировать распределенную среду в виде дерева с произвольным числом ярусов, в корне которого будет центральный сервер Х-Com, в узлах - промежуточные серверы, а листьями будут являться клиенты Х-Com (рис. 4).
Хотелось бы отметить, что анализ модели промежуточных серверов и их реализация существенно способствовали внедрению иерархических методов и в другие компоненты системы Х-Сот.
5. Иерархия «вычислительный клиент — рабочие процессы»
Клиентская часть Х-Com (вычислительный клиент), устанавливающаяся на всех узлах распределенной среды и взаимодействующая с сервером задачи, отвечает за запуск вычислительной части прикладной задачи. Архитектура современных вычислительных узлов позволяет запускать сразу несколько вычислительных процессов на одном узле (обычно по числу процессорных ядер). В настоящее время для реализации этой возможности на каждом узле запускается по несколько клиентов Х-Com, которые взаимодействуют с сервером задач и запускают вычислительные процессы независимо друг от друга. Логичным представляется переход к версии клиента Х-Com, поддерживающей многопроцессорные и многоядерные конфигурации. Такой клиент будет однократно скачивать все рабочие файлы прикладной задачи на узел (это позволит уменьшить сетевой трафик и нагрузку на сервер задач) и запускать необходимое число параллельных вычислительных процессов (рис. 5).
Клиент Х-Сот
■*
ы
ш
ь
ш
X
О)
I____I
Вычислительный узел Рис. 5. Перспективная архитектура клиента Х-Сот
Архитектура такого клиента слегка напоминает архитектуру промежуточного сервера. Автоматически появляется возможность запускать на узлах как чисто последовательные программы, так и программы, написанные с использованием ОрепМР. Число запускаемых процессов на узле может указываться при установке клиента, а может быть параметром при запуске каждой задачи.
6. Заключение
Внедрение иерархических и распределенных методов обработки данных на всех уровнях архитектуры системы Х-Сот способствует снижению накладных расходов системы метакомпьютинга и, как следствие, увеличивает эффективность ее работы. Распределение функциональности сервера задач на независимые процессы, способные работать на отдельных компьютерах, уменьшает загрузку процессора и каналов связи каждой из машин. Подсистема управления заданиями позволяет разбить все множество имеющихся вычислительных ресурсов на подмножества, эффективно решающие имеющиеся прикладные задачи, а кроме того, обеспечивает высокоуровневые пользовательские интерфейсы для работы в распределенной среде. Промежуточные серверы оптимизируют передачу больших объемов данных и снижают загрузку центрального сервера распределенных вычислений. Иерархическая организация клиентской части также позволит экономить сетевой трафик и оптимизировать загрузку вычислительных узлов.
Статья рекомендована к публикации программным комитетом международной научной конференции «Параллельные вычислительные технологии 2010».
Работа выполняется при поддержке гранта Президента РФ для молодых ученых МК-3010.2009.9 и частичной поддержке научно-технической программы Союзного государства СКИФ-ГРИД.
Литература
1. Семейство программ Х-Сот (официальный сайт) [Электронный ресурс]. - Режим доступа: http://x-com.parallel.ru/ (дата обращения: 12.04.2010).
2. Руководство пользователя системы Х-Сот2 [Электронный ресурс]. - Режим доступа: http://x-com.parallel.ru/documentation.html (дата обращения: 12.04.2010).
3. Соболев, С.И. Управление заданиями в Виртуальном метакомпьютерном центре на основе технологий Х-Сот / С.И. Соболев // Распределенные вычисления и Грид-технологии в науке и образовании: тр. второй междунар. конф. (Дубна, 26 - 30 июня 2006 г.). - Дубна, 2007. - С. 401 - 404.
4. Соболев, С.И. Использование распределенных компьютерных ресурсов для решения вычислительно сложных задач / С.И. Соболев // Системы управления и информационные технологии. - 2007. - №1.3 (27). - С. 391 - 395.
5. Соболев, С.И. Эффективная работа в распределенных вычислительных средах // С.И. Соболев // Численные методы, параллельные вычисления и информационные технологии. - 2008. - С. 249 - 258.
6. Соболев, С.И. Архитектура нового поколения системы метакомпьютинга Х-Сот // С.И. Соболев// Распределенные вычисления и Грид-технологии в науке и образовании: тр. третьей междунар. конф. (Дубна, 30 июня - 4 июля 2008 г.). - Дубна, 2008. -С. 123 - 127.
7. Эволюция системы метакомпьютинга Х-Сот / Вл.В. Воеводин, Ю.А. Жолудев, С.И. Соболев, К.С. Стефанов // Вестн. Нижегород. гос. ун-та им. Н.И. Лобачевского. - 2009. -№4. - С. 157 - 164.
Соболев Сергей Игоревич, кандидат физико-математических наук, научный сотрудник, Научно-исследовательский вычислительный центр МГУ имени М.В. Ломоносова, [email protected].
Поступила в редакцию 13 апреля 2010 г.