Параллельный алгоритм распределения задач

advertisement
3П
УДК 681.324
А.С. Посохов
Институт физики полупроводников СО РАН, г. Новосибирск, Россия
pas@isp.nsc.ru
Параллельный алгоритм распределения
задач набора по элементарным машинам
вычислительной системы*
Описан подход к организации функционирования большемасштабных вычислительных систем (ВС),
работающих в режиме обработки наборов параллельных задач. Приведен алгоритм, осуществляющий
распределение задач набора по элементарным машинам ВС, обеспечивающий субминимальное общее
время их решения. Приведены результаты моделирования на кластерной ВС и проведен анализ
полученных результатов.
Современные вычислительные системы (ВС) являются распределенными и
большемасштабными [1]. Число элементарных машин (ЭМ) в них неуклонно растет.
Например, лидер списка ТОП 500 [2] редакции ноября 2005 года, суперкомпьютер
фирмы IBM BlueGene/L состоит из 131072 процессоров.
Такие вычислительные системы могут работать не только в монопрограммных
режимах, когда решается одна сложная задача, но и в мультипрограммных, когда на
системе решается набор параллельных задач. Так-же возможна ситуация, когда
ресурсы большемасштабных систем предоставляются в коллективное пользование.
Таким образом, в очереди на решение может оказаться набор, состоящий из сотен
тысяч и миллионов задач. Необходимость эффективного использования вычислительных мощностей в такой ситуации становится актуальной. Использование ресурсов самой системы повышает ценность этих алгоритмов. Параллельный алгоритм,
описанный в данной работе, является таковым.
Точные алгоритмы, построенные на основе методов математического
программирования, при таком объеме данных имеют очень большую трудоемкость,
а следовательно, их применение не всегда оправдано.
Достаточно эффективными оказываются эвристические алгоритмы [3].
1. Постановка задачи
На вычислительной системе, состоящей из J={J1 ,J 2 ,...,J m } – множества
элементарных машин, работающей в мультипрограммном режиме, в очереди на
решение оказывается набор параллельных независимых задач I={I1 ,I 2 ,...,I n } , каждая
из которых характеризуется числом параллельных ветвей – r (ранг) в её программе, а
также временем решения – t на r машинах.
*
Работа выполнена при поддержке Российского фонда фундаментальных исследований
(гранты № 05-07-08011, № 05-07-90009).
258
«Искусственный интеллект» 4’2006
Параллельный алгоритм распределения задач набора по элементарным…
3П
Требуется построить алгоритм, распределяющий задачи Ii большого набора по
ЭМ J j вычислительной системы, который бы давал оптимальное значение целевой
функции, характеризующей эффективность ВС. В качестве целевой функции будем
использовать общее время решения задач Т на системе.
Алгоритм основан на разбиении набора, поступающего для решения на ВС, на
L частей. Распределением каждой части занимается отдельно взятая элементарная
машина. В этом случае можно сократить время распределения .
Каждая машина распределяет свою часть набора по последовательному
алгоритму [4], использующему один из методов исследования операций [5]. Данный
алгоритм осуществляет пошаговое распределение задач по элементарным машинам
ВС. Число шагов зависит от J и I . I r – множество задач ранга r. На каждом шаге:
1) определяется максимальный ранг R среди непустых подмножеств I r ⊂ I ;
2) если есть длинная задача ранга k ≤ m − R , то она назначается для решения
на машины, которые из дальнейшего рассмотрения исключаются;
3) распределяется подмножество I 0R ⊂ I R ;
4) распределяются некоторые задачи рангов r ≤ m − R .
Наборы, сформированные каждой элементарной машиной, объединяются в
общий, который, в свою очередь, и является оптимальным распределением задач по ВС.
2. Пример
Моделирование на машине AMD Opteron 248 показало, что распределяя
наборы при помощи последовательного алгоритма [4], время затраченное
оказывается следующим (табл. 1).
Таблица 1
№
Число задач в наборе
Время распределения, с
1
5x 104
9,3
2
105
39,67
3
2x 105
162,7
4
5
5
643
2617
4x 10
8x 105
Время распределения с увеличением числа задач растет квадратично, то есть
система вместо того, чтоб решать задачи, долгое время занимается распределением,
поэтому и был выбран описанный подход.
3. Эффективность
Но при таком подходе общее время решения задач T на ВС может
увеличиться, так как распределяющая ЭМ обладает информацией лишь о части
набора, таким образом, надо выбрать оптимальное L, при котором
T+Tapp → min ,
где Tapp – время, затраченное на работу алгоритма распределения.
«Штучний інтелект» 4’2006
259
Посохов А.С.
3П
Пусть τ – время выполнения одной операции на ВС, ω – среднее число операций,
приходящихся на одну ЭМ, в задачах, поступающих на решение, l ( L) – функция потерь,
при разбиении на L частей, c – некоторая константа. Таким образом, для получения
выигрыша во времени необходимо выполнение следующего условия :
cn 2
2
τ cn + τω n > τ 2 + τω n (1 + l ( L )) ,
L
cn
cn + ω > 2 + ω (1 + l ( L)) ,
L
cn
cn > 2 + ωl ( L) .
L
Откуда получаем следующую оценку эффективности разбиения:
cn L2l ( L)
>
.
(1)
ω L2 − 1
4. Описание алгоритма
Для описания алгоритма введем следующие операторы:
begin, end – операторы, обозначающие соответственно начало и конец работы
алгоритма;
mod(x,y) – оператор, дающий остаток от деления x на y;
[x] – оператор, дающий целую часть числа от х;
if C then A1 else A2 – оператор означает: выполнение оператора A1, если верно
условие C, и выполнение оператора A2, если условие C неверно;
for (i=1; i<=s; i=i+1) do A – оператор означает циклическое выполнение оператора A,
при котором переменная i на каждом шаге последовательно инкрементируется, до
тех пор, пока i не достигнет значения s;
send( J j , Ii , s) – оператор пересылки элементарной машине с номером j задач с
номерами i, i+1,…, i+s;
recv( J j , Ii ) – оператор приёма сформированного поднабора Ii от ЭМ с номером j;
heuristic(s, Ii ) – оператор, формирующий поднабор Ii из s задач по
последовательному алгоритму;
form( I1 , I 2 ,…, I L ) – оператор формирования общего набора из поднаборов
I1 , I 2 ,…, I L ;
sendto( J i , Ii ) – оператор, пересылающий ЭМ с номером i сформированный поднабор
Ii ;
recvfrom( J i , s) – оператор приёма s задач от ЭМ с номером i.
Алгоритм:
begin;
h = mod(k,L);
s = [k/L]; x = 0;
if (s < n) then
for (j=1;j<=L;j=j+1) {
if (j<h) then {send( J j , I x , s+1); x = x + s + 2;}
else {send( J j , I x , s); x = x + s + 1;}
260
«Искусственный интеллект» 4’2006
Параллельный алгоритм распределения задач набора по элементарным…
3П
}
else { h = mod(k,n); s = [k/n];
for (j=1;j<=L;j=j+1) {
if (j<h) then {send( J j , I x , s+1); x = x + s + 2;}
else {send( J j , I x , s); x = x + s + 1;}
}
}
for (j=1;j<=L;j=j+1) recv( J j , I j );
form( I1 , I 2 ,…, I L );
end.
Схема алгоритма для ЭМ с номером j:
begin;
recvfrom( J i , s);
heuristic(s, Ii );
sendto( J i , Ii );
end.
5. Результаты моделирования
Моделирование проводилось на сегменте пространственно распределенной
кластерной ВС [6], расположенном в Лаборатории вычислительных систем
Института физики полупроводников СО РАН, состоящего из двухпроцессорных
элементарных машин на базе процессоров AMD Opteron 248. Наборы задач были
сформированы случайным образом. ω = 100 . Моделирование показало, что для
таких наборов функция потерь ведет себя, как линейная l ( L) = k * L .
Согласно формуле (1):
cn
L3
> 2
.
kω L − 1
В табл. 2 представлены рекомендации по разбиению для некоторых наборов:
Таблица 2
n
L
6
2
10
6
5
2x 10
7
3x 106
10
4x 106
…
…
На рис. 1 представлена зависимость общего времени (затраченного на
распределение + время на последующее решение набора) от числа элементарных
машин, участвующих в распределении, для набора из 106 задач.
При этом общее время решения задач GT = 49,97x106 , нижняя граница
времени решения LB = 24,97x106 . В данном случае рекомендуется разбивать набор
«Штучний інтелект» 4’2006
261
Посохов А.С.
3П
на две части, при этом время решения набора плюс время, затраченное на
распределение, RT = 25,52x106 , что достаточно близко к нижней границе.
Рисунок 1
На рис. 2 рассмотрен случай для n= 2x106 .
Рисунок 2
В данном случае GT = 100,89x106 , LB = 50,38x106 , набор оптимально
разбивать на пять частей, при этом RT = 50,97x106 .
При наборе из 3x106 задач (рис. 3), GT = 151, 42x106 , LB = 75, 64x106 , RT =
76, 49x106 получается при разбиении на семь частей.
262
«Искусственный интеллект» 4’2006
Параллельный алгоритм распределения задач набора по элементарным…
3П
Рисунок 3
6. Выводы
Итак, при распределении наборов задач оптимальным оказывается разбиение набора
на пакеты по L задач, где L вычисляется по формуле (1). При этом общее время (решения +
распределения) оказывается достаточно близко к нижней границе и, как видно из рисунков
1–3, выигрыш относительно последовательного алгоритма существенен.
Рассмотренный выше параллельный алгоритм можно применять для наборов
задач, при распределении которых выполняется оценка (1). В противном случае, для
наборов, состоящих из небольшого числа задач, получается вырожденный случай
(L = 1), который соответствует последовательному алгоритму.
Литература
1.
2.
3.
4.
5.
6.
Хорошевский В.Г. Архитектура вычислительных систем. – М.: МГТУ им. Н.Э. Баумана, 2005. – 512 С.
TOP 500 Supercomputer sites (http://www.top500.org)
Евреинов Э.В., Хорошевский В.Г. Однородные вычислительные системы. – Наука, 1978.
Посохов А.С. Алгоритм функционирования вычислительных систем при решении набора
сложных задач // Материалы Российской научно-технической конференции «Информатика и
проблемы телекоммуникаций – 2005». – Новосибирск: СибГУТИ, 2005. – Том 1. – С. 223.
Вентцель Е.С. Исследование операций. – М.: Высшая школа, 2001.
Khoroshevsky V.G., Mamoilenko S.N., Maidanov Y.S., Sedelnikov M.S. Space-distributed multicluster
computer system with multiprogramme regimes supporting // Proc. of the Second IASED International
Multiconference on CIT – Software Engineering, June 20-24. – Novosibirsk (Russia). – Р. 136-138.
О.С. Посохов
Параллельный алгоритм розподілу задач набору по елементарним машинам обчислювальної системи
Описаний підхід до організації функціонування великомасштабних обчислювальних систем (ОС), що
працюють у режимі обробки наборів паралельних задач. Наведений алгоритм, що здійснює розподіл задач
набору по елементарним машинам ОС, що забезпечує субмінімальний загальний час їх вирішення.
Наведені результати моделювання на кластер ній ОС і проведений аналіз отриманих результатів.
Approach for organization of large-scale computer systems (CS) working in set of parallel tasks processing
functioning was described. Parallel algorithm which distributes tasks of set on CS’s elementary machines
with a subminimal general time of solving them was given. Results of modeling by using cluster CS were
showed, and analyze of them was realized.
Статья поступила в редакцию 29.06.2006.
«Штучний інтелект» 4’2006
263
Download