МОДЕЛИРОВАНИЕ АЛГОРИТМОВ ДЕЦЕНТРАЛИЗОВАННОГО ОБСЛУЖИВАНИЯ ПОТОКОВ ПАРАЛЛЕЛЬНЫХ ЗАДАЧ В СШБ-СИСТЕМАХ
М. Г. Курносов, А. А. Пазников
Сибирский государственный университет телекоммуникаций и информатики,
630102, Новосибирск, Россия
УДК 004.272
Предложены децентрализованные алгоритмы диспетчеризации в пространственно распределенных вычислительных системах параллельных задач с целью минимизации времени их обслуживания. Описана функциональная структура разработанного программного пакета GBroker децентрализованного управления ресурсами мультикластерных вычислительных и GRID-систем. Представлены результаты моделирования созданных алгоритмов, обслуживающих потоки параллельных задач на действующей пространственно распределенной мульти-кластерной вычислительной системе.
Ключевые слова: диспетчеризация параллельных программ, пространственно распределенные вычислительные системы, GRID-системы.
Decentralized scheduling algorithms in geographically-distributed computer systems are proposed in this paper. The main goal is to minimize the job service time. Functional structure of the developed software suite of the decentralized resource management is shown. Experimental results with the developed algorithms at the service of parallel jobs streams are presented. Experiments were conducted on the geographically-distributed multicluster computer system.
Key words: parallel programs scheduling, geographically-distributed computer systems, GRID-systems.
Введение. При решении сложных задач науки и техники широкое применение получили пространственно распределенные вычислительные системы (ВС) — макроколлективы рассредоточенных вычислительных средств (подсистем), взаимодействующих через локальные и глобальные сети связи (включая сеть Internet) [1]. К числу таких систем относятся пространственно распределенные мультикластерные вычислительные и GRID-системы.
Важной проблемой организации функционирования пространственно распределенных ВС является диспетчеризация. Для решения каждой поступившей в ВС параллельной задачи требуется определить подсистемы. Необходимо учитывать изменения состава и загрузки ВС с течением времени.
В пространственно распределенных вычислительных и GRID-системах каждая подсистема функционирует под управлением локальной системы управления ресурсами (СУР) (TORQUE, Altair PBS Pro, SLURM и др.), которая поддерживает очереди пользовательских задач и выделяет для них вычислительные ресурсы (процессорные ядра).
Работа выполнена при финансовой поддержке РФФИ (коды проектов 11-07-00105, 10-07-00157), Министерства образования и науки РФ (госконтракт № 07.514.11.4015) и Совета по грантам Президента РФ для государственной поддержки ведущих научных школ РФ (грант № НШ-2175.2012.9).
Централизованные средства диспетчеризации задач в пространственно распределенных ВС подразумевают наличие в системе центрального диспетчера, поддерживающего глобальную очередь задач. Отказ такого диспетчера может привести к неработоспособности всей системы. Кроме того, в случае применения таких средств в большемасштабных ВС возрастают временные затраты на поиск необходимых ресурсов.
Основными программными пакетами организации централизованной диспетчеризации параллельных задач в пространственно распределенных вычислительных и GRID-системах являются GridWay [2], AppLeS [3], GrADS [4], Nimrod/G [5], Condor-G [6]. Пакет GridWay входит в состав пакета Globus Toolkit и является наиболее распространенным GRID-диспет-чером. В этом пакете минимизируется время обслуживания задач и поддерживается механизм их миграции между подсистемами. В AppLeS диспетчеризация выполняется на уровне самого приложения. Это приводит к уменьшению области применимости указанного пакета. Пакет GrADS, как и GridWay, поддерживает миграцию задач и допускает указание зависимостей по данным между задачами. Пакет Nimrod/G на основе экономических моделей обеспечивает равновесие между условными поставщиками (подсистемами) и потребителями вычислительных ресурсов (задачами). В Condor-G зависимости между задачами задаются в виде ориентированного ациклического графа.
При децентрализованной диспетчеризации в распределенной ВС функционирует коллектив диспетчеров, которые поддерживают распределенную очередь задач и совместно принимают решение о выборе ресурсов. Это позволяет повысить живучесть — способность ВС продолжать работу при отказах отдельных подсистем.
Для распределенных вычислительных систем с программируемой структурой созданы эффективные децентрализованные алгоритмы управления ресурсами [7, 8]. Однако область применимости этих методов для пространственно распределенных вычислительных и GRID-систем ограничена. В алгоритмах не учитываются производительность каналов связи между ресурсами и возможность образования очередей задач на подсистемах.
В данной работе предлагаются децентрализованные алгоритмы и программное обеспечение диспетчеризации параллельных задач в пространственно распределенных вычислительных и GRID-системах. В алгоритмах учитываются изменения состава и загруженности ресурсов распределенных ВС в процессе их функционирования.
1. Децентрализованная диспетчеризация параллельных задач в пространственно распределенных ВС. Пусть имеется пространственно распределенная ВС, состоящая из H подсистем; N — суммарное количество элементарных машин (ЭМ) в подсистемах. Под ЭМ понимается единица вычислительного ресурса, предназначенного для выполнения ветви параллельной программы (например, процессорное ядро). Введем следующие обозначения: ni — количество ЭМ, входящих в состав подсистемы i Е S = 1, 2,..., H; ci — число свободных ЭМ в подсистеме i; qi — число задач в очереди подсистемы i; si — число задач, выполняющихся на ЭМ подсистемы i; tij = t(i,j,m) — время передачи сообщения размером m байт между подсистемами i Е S, j Е S ([t(i,j,m)] = c). Считается, что все подсистемы объединены сетью связи.
На каждой подсистеме присутствуют локальная СУР и децентрализованный диспетчер, который поддерживает свою очередь параллельных задач и осуществляет поиск вычислительных ресурсов для их выполнения.
Коллектив диспетчеров представлен в виде ориентированного графа G(S, E), в котором вершинам соответствуют диспетчеры, а ребрам — логические связи между ними (рис. 1). Наличие дуги (i,j) Е E в графе означает, что диспетчер i может отправлять задачи диспет-
Рис. 1. Пример локальных окрестностей диспетчеров Н = 4, Ь(!) = {2, 3}, Ь(2) = {1, 4}, Ь(3) = {1, 4}, Ь(4) = {2, 3}
черу ^. Множество всех вершин 3, смежных вершине г, образуют ее локальную окрестность Ь(г) = {з е Б\(г,з) е Е}.
Пользователь направляет задачу диспетчеру г. Задача содержит программу, входные файлы и ресурсный запрос, в котором указываются ранг г программы (количество параллельных ветвей), размеры ,г2исполняемого и входных файлов программы в байтах, а также номера Н\,Н2подсистем, на которых размещены соответствующие файлы (Н[ е Б). Диспетчер (в соответствии с реализованным в нем алгоритмом) выполняет поиск (суб)оптимальной подсистемы 3* е Ь(г) и {г} (или подсистем 3*,32*,... ,3^) из его локальной окрестности.
1.1. Алгоритм локально-оптимальной диспетчеризации (ДЛО). Алгоритм осуществляет выбор локально-оптимальной подсистемы.
Шаг 1. В окрестности Б (г) диспетчера г выбирается подсистема 3 * с минимальным значением функции Е (3), 3 е Б (г):
и
3* = ^ ^(г)Е(3), Е(3) =
I
+
+
тах
и
Шт
о^ < г или qj > 0,
иначе.
с
тах
с
j
г
тах
к
Здесь tj = t(hi,j,zi) — время доставки файлов задачи до подсистемы j; tmax = 1=1
maxj£S(i){tj}; cmax = maxj£S(i){cj}; Wj = qj/nj — количество задач в очереди, приходящееся на одну ЭМ подсистемы j; wmax = maxjes(i){wj}.
Шаг 2. Задача направляется в очередь локальной СУР подсистемы j *, после чего осуществляется доставка файлов задачи на эту подсистему.
Ранжирование подсистем по значению функции F (j ) позволяет учесть время доставки файлов задачи до подсистем, а также их относительную загруженность.
1.2. Алгоритм диспетчеризации на основе репликации задач (ДР). В основе данного алгоритма лежит назначение задачи одновременно на несколько подсистем.
Шаг 1. В окрестности S(i) выбирается m подсистем j*,j*,... в порядке неубывания значений функции F (j ).
Шаг 2. Задача одновременно направляется в очереди локальных СУР подсистем j*,j*,... ,j*, после чего осуществляется доставка файлов задачи до этих подсистем.
Шаг 3. С интервалом времени А диспетчер i проверяет состояние задачи на подсистемах j*,j*,... , jm и определяет подсистему j', на которой задача запущена на выполнение раньше, чем на других подсистемах.
Шаг 4. Задача удаляется из очередей локальных СУР подсистем, отличных от j'.
1.3. Алгоритм диспетчеризации на основе миграции задач (ДМ). В данном алгоритме реализован периодический поиск новых подсистем для задач из очереди диспетчера.
Шаг 1. В окрестности S (i) диспетчера i выбирается подсистема j * с минимальным значением F (j ), j G S (i).
Шаг 2. Задача направляется в очередь локальной СУР подсистемы j *, после чего осуществляется доставка файлов задачи на эту подсистему.
Шаг 3. Диспетчер i c интервалом времени А запускает процедуру ДЛО поиска подсистемы j для задачи в очереди диспетчера j .
Шаг 4. Если для найденной подсистемы выполняется условие F (j *) — F (j ') > e, то выполняется миграция задачи в очередь подсистемы j' (задача удаляется из очереди диспетчера j *).
1.4. Алгоритм диспетчеризации на основе репликации и миграции задач (ДРМ). Алгоритм основан на комбинации двух подходов — назначении на несколько подсистем и миграции из очереди.
Следует отметить, что вычислительная сложность поиска подсистем предложенными алгоритмами не зависит от количества H подсистем, так как поиск осуществляется только в локальных окрестностях диспетчеров. Это обеспечивает применимость алгоритмов в боль-шемасштабных пространственно распределенных ВС.
2. Программный пакет GBroker децентрализованной диспетчеризации задач. В Центре параллельных вычислительных технологий Сибирского государственного университета телекоммуникаций и информатики (ЦПВТ СибГУТИ) и лаборатории вычислительных систем Института физики полупроводников им. А. В. Ржанова СО РАН (ИФП СО РАН) создан и развивается программный пакет GBroker [9] децентрализованной диспетчеризации параллельных задач в пространственно распределенных ВС. Пакет, разработанный на языке ANSI C для операционной системы GNU/Linux, включает диспетчер GBroker, клиентское приложение GClient и системы мониторинга NetMon и DCSMon. Модуль GBroker реализует алгоритмы децентрализованной диспетчеризации задач, взаимодействуя с локальной СУР через подсистему GRAM пакета Globus Toolkit. DCSMon — модуль мониторинга
Рис. 2. Тестовая конфигурация мультикластерной ВС (H = 6, N = 130):
1-6 — номера подсистем
вычислительных ресурсов подсистем локальной окрестности диспетчера. NetMon — модуль мониторинга производительности каналов связи между подсистемами.
Администратор устанавливает пакет на всех подсистемах, настраивает локальные окрестности диспетчеров и модулей DCSMon и NetMon. Пользователь формирует задачу, состоящую из параллельной программы и ресурсного запроса на языке Job submission description language (JSDL), и отправляет ее средствами GClient любому из диспетчеров GBroker распределенной ВС. Передача файлов в системе обеспечивается службой GridFTP.
3. Экспериментальное исследование алгоритмов. Исследование созданных алгоритмов проводилось на пространственно распределенной мультикластерной ВС, созданной ЦПВТ СибГУТИ совместно с лабораторией вычислительных систем ИФПСОРАН (рис. 2). На каждом сегменте установлены операционная система GNU/Linux, локальная система управления ресурсами TORQUE 2.3.7, пакет Globus Toolkit 5.0, децентрализованный диспетчер GBroker, системы мониторинга DCSMon и NetMon. На сегменте 5 (Xeon80) настроен диспетчер GridWay 5.6.1 для управления ресурсами всех подсистем.
В качестве тестовых задач использовались MPI-программы из пакета тестов SPEC MPI 2007: weather research and forecasting (WRF) — пакет моделирования климатических процессов; parallel ocean program (POP2) — пакет моделирования процессов в океане; LAMMPS — пакет решения задач молекулярной динамики; RAxML — пакет моделирования задач биоинформатики; Tachyon — пакет расчета графических сцен. Входные данные для тестовых
задач/г 0,16
Т, с
11111 I — _ш— — —[Ь 1 1 -I4 1
/
_____ /я , ^ . т Гз
£ •____ г-"" 1 • 1 _________1___
1 * 1 : \ :
1 ! х}> 1 1 | 1
0,1
0,2
0,3
0, 4
0, 5
0, 6 а, с-
200
1 Ч
/
______4 ^_____ и / к______
V'
..¿А 'Л е— --* , я ) 1
5- -г- V
ТГ 1
0,1
0,2
0,3
0,4
0,5
0, 6 а, с-1
Рис. 3. Эффективность алгоритмов ДЛО и ДР: 1 — алгоритм ДЛО; 2-4 — алгоритм ДР (2 — т = 2; 3 — т = 3; 4 — т = 6); а — пропускная способность системы; б — среднее время обслуживания задачи; в — среднее время пребывания задачи в очереди
задач размещались на сегменте Хеоп80. На ту же подсистему доставлялись результаты выполнения программ.
Генерировались простейшие потоки с различной интенсивностью А поступления задач, которые псевдослучайно с равномерным распределением выбирались из тестового набора. Каждый поток формировался из М задач. Ранг г каждой задачи выбирался из множества {1, 2, 4, 8} псевдослучайно с равномерным распределением.
Обозначим через Ьк время поступления задачи к Е 1, 2,... ,М на вход диспетчера, — время начала решения задачи к, Ь'к — время завершения решения задачи к. Пусть т — суммарное время обслуживания потока из М задач. Для оценки эффективности алгоритмов диспетчеризации использовались следующие показатели: пропускная способность В системы, среднее время Т обслуживания задачи и среднее время Ш пребывания задачи в очереди:
М 1 М 1 М
В = т,Т = м^к - Ьк = м^к - Ьк). к=1 к=1
3.1. Сравнительный анализ алгоритмов. На рис. 3, 4 приведены результаты сравнения эффективности алгоритмов ДЛО, ДР, ДМ и ДРМ при обслуживании потока из М = 200
Рис. 4. Эффективность алгоритмов ДЛО, ДМ и ДРМ: 1 — алгоритм ДМ; 2 — алгоритм ДЛО; 3,4 — алгоритм ДРМ (3 — т = 2, 4 — т = 3); а — пропускная способность системы; б — среднее время обслуживания задачи; в — среднее время пребывания задачи в очереди
задач. Поток задач поступал на подсистему Хеоп80, локальные окрестности диспетчеров имели структуру полного графа.
При использовании алгоритма ДР для т Е {2, 3} пропускная способность системы выше, чем при использовании алгоритма ДЛО. При больших значениях т деградация показателей обусловлена увеличением загрузки каналов связи при передаче входных файлов одной задачи на несколько сегментов.
В алгоритмах ДМ и ДРМ интервал поиска подсистемы А = 30 с, условие миграции £ = 0, 2. Наименьшие среднее время обслуживания задач и среднее время ожидания в очереди достигнуты при использовании алгоритмов ДЛО и ДМ (см. рис. 4), при этом большая пропускная способность системы получена для ДМ. Алгоритмы ДР и ДРМ рекомендуется применять в случае малой интенсивности потоков задач или небольших размеров входных данных.
При большой интенсивности потока задач значительно возрастает время доставки входных данных вследствие повышения загрузки каналов связи и сетевой файловой системы на сегментах. Это приводит к снижению пропускной способности системы и увеличению времени обслуживания задач (ожидания в очереди) для всех алгоритмов диспетчеризации.
Рис. 5. Эффективность диспетчеров GBroker и GridWay: 1 — GBroker; 2 — GBroker (полный граф); 3 — GBroker (2^-тор); 4 — GridWay; а — пропускная способность системы; б — среднее время обслуживания задачи; в — среднее время пребывания задачи в очереди
3.2. Сравнительный анализ диспетчеров GBroker и GridWay. Выполнено сравнение эффективности обслуживания потоков задач централизованным диспетчером GridWay и созданным децентрализованным пакетом GBroker.
Для диспетчера GBroker проведено два эксперимента. В ходе первого эксперимента на подсистему Xeon80 поступал поток из M = 300 задач. Во втором эксперименте моделировалось распределенное обслуживание задач: одинаковые потоки из M = 50 задач одновременно поступали в очереди диспетчеров всех шести подсистем. При этом в качестве структур логических связей диспетчеров использовались 2Д-тор и полный граф, а в качестве алгоритма диспетчеризации — ДМ. Пакет GridWay установлен на сегменте Xeon80 и настроен в соответствии с рекомендациями разработчиков.
На рис. 5 видно, что пропускная способность диспетчера GBroker при обслуживании нескольких потоков превосходит пропускную способность пакета GridWay. Среднее время обслуживания и среднее время пребывания задач в очереди близки к соответствующим параметрам в пакете GridWay и незначительно возрастают при централизованном обслуживании.
t, c
а
t, c
б
26
260
20
24
22
12
10
16
14
18
80
10:00 12:00 14:00 16:00 18:00 20:00 22:00 T
10:00 12:00 14:00 16:00 18:00 20:00 22:00 T
Рис. 6. Прогноз времени t передачи файлов между подсистемами Xeon80 и L4001 (Gigabit Ethernet): а — m = 100 Мбайт, б — m = 1000 Мбайт, 1 — NetMon; 2 — GridFTP
3.3. Моделирование средств мониторинга производительности каналов связи. Модуль NetMon прогнозирования производительности каналов связи установлен на всех подсистемах и выполняет периодический сбор информации о времени передачи файлов различных размеров между подсистемами распределенной ВС. Администратор системы выполняет конфигурацию службы NetMon, задавая таблицу тестовых значений. Периодически проводится измерение времени передачи тестовых файлов средствами службы GridFTP из пакета Globus Toolkit. Прогноз времени передачи файла размером m байт составляется на основе таблицы, полученной путем кусочно-линейной интерполяции.
Выполнена оценка погрешности прогноза времени доставки данных. В эксперименте c интервалом 300 с в течение 12 ч выполнялись измерения при передаче файлов размерами 100 и 1000 Мбайт по протоколу GridFTP между различными подсистемами. На рис. 6 видно, что относительное отклонение прогнозируемого времени передачи файлов от измеренного в среднем не превышает 35%, что, по мнению авторов, приемлемо в GRID-системах.
Заключение. Централизованные системы диспетчеризации задач в большемасштабных распределенных вычислительных системах характеризуются вычислительной сложностью поиска требуемых ресурсов. Децентрализованная диспетчеризация существенно проще централизованной и позволяет повысить живучесть распределенных ВС.
Результаты исследования созданных алгоритмов и программных средств диспетчеризации параллельных задач на мультикластерной вычислительной системе показали, что и при децентрализованной, и при централизованной диспетчеризации средние времена обслуживания потоков задач сопоставимы. Время диспетчеризации достаточно мало по сравнению со временем выполнения задач. Инструментарий децентрализованной диспетчеризации — один из необходимых компонентов пространственно распределенных вычислительных и GRID-систем.
Созданный пакет GBroker является свободно распространяемым. Для организации децентрализованной диспетчеризации задач в пространственно распределенной ВС достаточно установить пакет GBroker на всех подсистемах и выполнить конфигурацию диспетчеров в соответствии с предлагаемыми рекомендациями.
Список литературы
1. ХОРОШЕВСКИЙ В. Г. Распределенные вычислительные системы с программируемой структурой // Вестн. СибГУТИ. 2010. № 2. С. 3-41.
2. hüedo e., Montero r., Llórente i. A framework for adaptive execution on grids // Software-Practice Experience. 2004. V. 34. P. 631-651.
3. Berman F., Wolski R., Casanova H. Adaptive computing on the grid using AppLeS // IEEE Trans. Parallel Distributed Systems. 2003. V. 14, N 4. P. 369-382.
4. Cooper K., Dasgupta A., Kennedy A., Koelbel C. et al. New grid scheduling and rescheduling methods in the GrADS project // Intern. J. Parallel Programming. 2005. V. 33, N 2/3. P. 209-229.
5. Buyya R., Abramson D., Giddy J. Nimrod/G: An architecture for a resource management and scheduling system in a global computational grid // Proc. of the 4th Intern. conf. on high performance computing in Asia-Pacific region, Beijing (China), 14-17 May 2000. Beijing: IEEE CS Press, 2000. P. 283289.
6. Frey J., Tannenbaum T., Livny M., Foster I. Condor-G: A computation management agent for multi-institutional grids // Cluster Comput. 2001. V. 5. P. 237-246.
7. Корнеев В. В. Архитектура вычислительных систем с программируемой структурой. Новосибирск: Наука. Сиб. отд-ние, 1985. 164 с.
8. МОНАХОВ О. Г. Параллельные системы с распределенной памятью: управление ресурсами и заданиями / О.Г.Монахов, Э.А.Монахова. Новосибирск: ИВМиМГ СО РАН, 2001. 168 с.
9. Курносов М. Г., Пазников А. А. Инструментарий децентрализованного обслуживания потоков параллельных MPI-задач в пространственно распределенных мультикластерных вычислительных системах // Вестн. ТГУ. 2011. № 3. С. 78-85.
Курносов Михаил Георгиевич — канд. техн. наук, доц. Сибирского государственного университета телекоммуникаций и информатики;
тел.: +7 (383) 269-82-86; e-mail: [email protected];
Пазников Алексей Александрович — асп. Сибирского государственного университета телекоммуникаций и информатики; e-mail: [email protected]
Дата поступления — 23.01.12 г.