Федеральный портал "Инженерное образование"
т электронный журнал
ОБРАЗОВАНИЕ
Инженерное образование Ассоциация технических университетов
#8 август 2007
Общие проблемы
инженерного
образования
Инженер в современной России
Наука в образовании: Электронное научное издание
CALS-технологии
Зарубежное образование
История технического прогресса
Учебные программы Будущий инженер Вне рубрик
English Library
Пресс-релизы
Библиотека
Конференции
Выставки
Форум
Доска объявлений
Архив
Переписка
Информация о проекте About project
Эл N ФС 7730569
# Гос. регистрации 0420800025
ISSN 19940408
Ред. совет Специальности Рецензентам Авторам English Koi-8 Win
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
Найти!
я
Найти выделенное
Исследование эффективности балансировки загрузки многопроцессорной системы при распараллеливании одного класса вычислительных задач #8 август 2007
УДК 519.6
Карпенко А.П., Федорук В.Г., Федорук Е.В.
1. Введение
Схема решения достаточно широкого класса вычислительных задач (далее - F-задач) неформально может быть представлена в следующем виде: область решения задачи покрывается некоторой сеткой; в узлах сетки производятся вычисления значений функций, ассоциированных с этими узлами; на основе вычисленных значений формируется решение задачи. В виде такой схемы может быть представлено, например, решение задачи глобальной условной оптимизации комбинацией метода случайного поиска с каким-либо методом локальной оптимизации, построение некоторыми методами множества Парето в задаче многокритериальной оптимизации и пр. Непосредственным стимулом для написания данной работы явилась проблематика организации параллельных вычислений при решении задач многокритериальной оптимизации.
Принципиальными являются следующие обстоятельства: 1)для вычисления значений функций, ассоциированных с узлами сетки, используется одна и та же программа; 2)для работы этой программы необходима информация только о тех узлах, которые она обрабатывает; 3)вычислительные сложности указанных функций являются случайными величинами с неизвестными статистическими характеристиками, т.е. вычислительные сложности непредсказуемо различны в различных узлах сетки; Сформирование решения всей задачи выполняется на основе значений функций, ассоциированных с узлами сетки.
В случае, когда суммарная вычислительная сложность указанных функций велика, целесообразно решение F-задач на многопроцессорных вычислительных системах (МВС) с общей или распределенной памятью.
При решении задачи на МВС принято выделять следующие основные этапы [1]: декомпозиция (partitioning) -разбиение задачи на минимальные независимые подзадачи; коммуникации (communication) - определение информационных связей подзадач; кластеризация (agglomeration) - объединение подзадач в группы подзадач с целью минимизации информационных связей между ними; отображение (mapping) - назначение групп подзадач конкретным процессорам. Для F-задач этапы декомпозиции и коммуникации не представляют труда - подзадачи естественным образом ставятся в соответствие узлам сетки, а коммуникации между подзадачами отсутствуют. Этап кластеризации в данном случае вырожден, поскольку коммуникации между подзадачами отсутствуют и объединение подзадач в группы целесообразно выполнять, исходя только из потребностей этапа отображения. Таким образом, для F-задач основной является проблема оптимального отображения узлов сетки на параллельную вычислительную систему.
Отметим, что проблема оптимального отображения вычислительного процесса на параллельную вычислительную систему является одной из основных проблем, связанных с распараллеливанием вычислений. Хорошо известно, что эта проблема является NP-сложной и точные методы ее решения существуют для очень узкого класса задач [2].
На первый взгляд, F-задачи вкладываются в более широкий класс задач, в котором программы, обрабатывающие различные узлы сетки, информационно связаны. К задачам этого класса относятся, например, задачи математической физики, решаемые различными конечно-разностными и конечно-элементными методами. Вследствие исключительной практической важности таких задач, имеется большое количество работ, посвященных их распараллеливанию (см., например, [3]). Однако в задачах указанного класса полностью неизвестными являются вычислительные сложности функций, ассоциированных с узлами сетки, только на первой итерации. На последующих итерациях в качестве оценок вычислительных сложностей узлов можно использовать их значения на предыдущей итерации. Такая возможность отсутствует в F-задачах.
С другой стороны, при построении операционных систем МВС одной из важнейших является задача планирования вычислений при выполнении множества информационно и логически не связанных заданий. Этой проблеме также посвящено большое количество публикаций (см., например, [4]). Однако в F-задачах формирование решения всей задачи и, быть может, построение сетки, информационно и логически связаны с функциями, ассоциированными с узлами сетки. Поэтому прямое использование методов планирования вычислений, используемых в операционных системах МВС, в F-задачах не удается.
Чаще всего для приближенного решения задачи оптимального отображения используется метод балансировки загрузки МВС (load balancing). Основная идея метода состоит в распределении вычислений по процессорам таким образом, чтобы суммарная вычислительная и коммуникационная загрузки процессоров были примерно одинаковы. При этом не учитываются коммуникационные загрузки процессоров, обусловленные транзитными обменами и конфликты при обменах вследствие перегрузки коммуникационной сети [5].
Различают статическую и динамическую балансировку загрузки. Статическая балансировка загрузки выполняется однажды, до начала вычислений. Обзор методов статической балансировки загрузки применительно к параллельному решению задач математической физики дан, например, в работе [6].
Поскольку в F-задаче вычислительные сложности функций, ассоциированных с различными узлами расчетной сетки, различны и априори неизвестны, то статическая балансировка загрузки может быть неэффективной. В этом случае в процессе вычислений приходится перераспределять узлы расчетной сетки между процессорами системы - использовать динамическую балансировку загрузки. Обзор методов динамической балансировки загрузки приведен, например, в работе [7].
Методы динамической балансировки загрузки можно классифицировать, прежде всего, по следующим признакам: когда процессоры обмениваются информацией о своей текущей загрузке; где принимается решение о перераспределении загрузки; когда производится перераспределение загрузки; в соответствии с каким алгоритмом происходит перераспределение загрузки.
Процессоры могут обмениваться информацией о своей текущей загрузке периодически или когда загрузка процессора станет меньше некоторой допустимой, по появлении свободного процессора, по отторжении процесса процессором вследствие перегрузки и т.д. Решение о перераспределении загрузки может приниматься централизованно (на основе глобальной информации о загрузке) и децентрализовано (на основе только локальной информации о загрузке). Перераспределение загрузки может происходить синхронно и асинхронно. В качестве алгоритмов перераспределения загрузки могут использоваться детерминированные и стохастические алгоритмы, перераспределение загрузки может производиться по инициативе получателя и по инициативе отправителя, и пр.
В работе рассматриваются следующие методы балансировки загрузки:
1) статическая балансировка;
2) динамическая централизованная балансировка методом равномерной декомпозиции узлов - равномерная
балансировка;
3) динамическая централизованная балансировка методом экспоненциальной декомпозиции узлов -экспоненциальная балансировка;
4) динамическая децентрализованная балансировка диффузным методом, в котором перераспределение загрузки производится по инициативе получателя - диффузная балансировка.
В последнем случае рассматривается перераспределение загрузки только по инициативе получателя, поскольку для Б-задачи такой алгоритм более эффективен, чем перераспределение загрузки по инициативе отправителя. При этом возможно использование детерминированных и стохастических алгоритмов поиска отправителя. С точки зрения используемой в работе методики оценки эффективности балансировки эти алгоритмы эквивалентны. Поэтому алгоритм поиска отправителя в работе не фиксируется.
2. Постановка Е-задачи
Пусть х - п-мерный вектор параметров задачи. Полажим, что ЛГеЛ", гДе Л" - ^'-мерное арифметическое пространство. Наряду со словами «вектор X», будем говорить «точка X». Параллелепипедом допустимых значений
вектора параметров назовем не пустой параллелепипед = < хг- < е[1,и]} Где ^ - заданные константы. На
вектор X дополнительно наложено некоторое количество функциональных ограничений, формирующих множество
, где - непрерывные ограничивающие функции.
На множестве Пх =П[\0 тем или иным способом (аналитически или алгоритмически) определена вектор-функция ^(Х) е Л". Ставится задача поиска значения некоторого функционала.
Приближенное решение поставленной Б-задачи, полагается, может быть найдено по следующей схеме.
Шаг 1. Покрываем параллелепипед П некоторой сеткой О (равномерной или неравномерной, детерминированной или
случайной) с узлами Хх,Х-1:^гХ2.
Шаг 2. В тех узлах сетки , которые принадлежат множеству , вычисляем значения вектор функции ^(Х)
Шаг 3. На основе вычисленных значений вектор функции ^(Х) находим приближенное значение функционала
ФОЧХ)}
Суммарное количество арифметических операций, необходимых для однократного определения принадлежности вектора X множеству Зт (т.е. суммарную вычислительную сложность ограничений - ^ - ^ и ограничивающих функций
£¡№0), обозначим — 0. Вообще говоря, величина ^е зависит от вектораХ Мы, однако, пренебрежем этой зависимостью и будем полагать, что имеет место равенство = с™*'. Заметим, что до начала вычислений величина , как правило, неизвестна. Однако в процессе первого же определения принадлежности некоторого узла сетки О множеству эту величину можно легко определить (с учетом предположения о независимости этой величины от вектора X). Поэтому будем
полагать величину *иге известной.
Неизвестную вычислительную сложность вектор-функции ^(Х) обозначим ^/С^). Подчеркнем зависимость
величины от вектора X. Величина удовлетворяет, во-первых, очевидному ограничению ^/С^О — Во-вторых,
сг
положим, что известно ограничение сверху на эту величину , имеющее смысл ограничения на максимально допустимое время вычисления значения Если значения этой вектор-функции вычисляются с помощью некоторого итерационного
процесса, то такое ограничение обычно вводится для того, чтобы избежать «зацикливания» программы. Вычислительную
сложность
«ДО
назовем вычислительной сложностью узла
Вычислительную сложность конечномерной аппроксимации функционала Ф(Р(Х)] положим равной
ж,
вычислительную сложность генерации сетки О - равной 2.Са, где при данных величины Сф,Са - известные константы.
В качестве вычислительной системы рассмотрим однородную МВС с распределенной памятью, состоящую из процессоров и Ъо$1-процессора, имеющих следующие параметры: £ - время выполнения одной арифметической
операции с плавающей запятой; <1 — - диаметр коммуникационной сети; / - длина вещественного числа в байтах;
- латентность коммуникационной сети; ^ [с] - время передачи байта данных между двумя соседними процессорами системы без учета времени ^М. Для простоты записи положим, что количество узлов сетки кратно количеству
= г
процессоров в системе ТУ, так что ДГ >1-
зт
т со
В качестве меры эффективности параллельных вычислений используем ускорение * ^С^О , где
т СО - время
последовательного решения задачи на одном процессоре системы, - время параллельного решения той же задачи на N
процессорах, - номер метода балансировки. Кроме того, для оценки эффективности балансировки используем
следующие величины: оценка ускорения сверху оценка ускорения снизу ^¡~(Й0; относительная оценка ускорения
и аналогичная относительная оценка ускорения снизу Щ (ЙО.
ъЧ*)
сверху (ДТ)
Оценка ускорения сверху ^ (ЙО достигается в ситуации, когда вычислительные сложности всех узлов сетки
О одинаковы и равны В этом случае легко обеспечить равномерную загрузку всех процессоров, что и является основанием для использования достигнутого ускорения в качестве оценки ускорения сверху. Данная ситуация моделирует случай, когда вычислительная сложность является случайной величиной с малой дисперсией.
Оценка ускорения снизу достигается в ситуации, когда вычислительная сложность одного из узлов
X* сетки многократно превышает вычислительные сложности ^/С^) любых других узлов этой сетки, т.е.
= »С^{Х^ — //Су. ддя любых ^ 0</#«1 В этих условиях неизбежна сильная несбалансированность
загрузки процессоров. В пределе при
С, ->оо
все процессоры, кроме процессора ^ которому назначен для обработки узел
а
X*, по сути, простаивают в течение всего времени решения задачи и ^ (АО 1. Это обстоятельство и является основанием для использования в данном случае достигнутого ускорения в качестве оценки ускорения снизу. Ситуация, близкая к данной, может иметь место в случае, когда дисперсия вычислительной сложности ^/С^Э велика, а также когда объем множества Пх значительно меньше объема параллелепипеда П.
Основные результаты в работе получены для случая, когда множество совпадает со всем параллелепипедом П, т.е. когда Пх =П. Это допущение не является слишком ограничительным, поскольку не принадлежность некоторого узла
Х-} множеству можно интерпретировать как равенство нулю вычислительной сложности этого узла что
включает в себя ограничение < С™
Все графики в работе получены в системе МЛТЬЛВ при следующих «тестовых» значениях параметров Б-задачи и
МВС:
100
г=Ш4 ; /= 8; t= 10*10Г®[С]; ts =50*10^[С]; ао*10 [с], d{N) = [2цЛДО-1], где М- ближайшее
целое большее v • Заметим, что примерно такими параметрами ^, ic обладает сеть, построенная по технологии SCI, в которой для обмена данными используется коммуникационная библиотека MPI [2]. Указанная зависимость d(Ny соответствует коммуникационной сети с топологией типа квадратная «решетка».
3. Статическая балансировка
Для Б-задачи статическую балансировку загрузки естественно организовать с использованием геометрической схемы
распараллеливания [2], при которой узлы сетки разбиваются на * = АГ множеств ^ по г узлов в каждой. Количество узлов множества принадлежащих множеству обозначим а сумму этих величин обозначим ^ В сделанных
предположениях схема параллельных вычислений при решении Б-задачи с использованием статической балансировки загрузки имеет следующий вид.
Шаг 1. Но$1-процессор строит сетку О и разбивает ее узлы на множества
Шаг 2. Процессор ^ выполняет следующие действия:
• принимает от Ъо$1-процессора координаты узлов множества ^;
• последовательно для всех узлов этого множества определяет их принадлежность множеству Пх;
• вычисляет в каждом из узлов значение вектор-функции -РрС);
• передает host-процессору вычисленные значения и заканчивает вычисления.
Шаг 3. Но$1-процессор на основе полученных значений вектор-функции -^ХХ) вычисляет приближенное значение функционала Ф(К(Х))
В соответствии с изложенной схемой время решения Б-задачи на процессоре ^ можно оценить величиной
т, = ц*ш1лс I /-„шщ I . (*,.,)
a,
где ^е** * . вычислительная загрузка процессора + гпЬЙГ( + ^^ . его
коммуникационная загрузка. При этом время параллельного решения всей Б-задачи оценивается величиной
Аналогично, оценка времени решения задачи на одном процессоре равна
Г© = + ¿¿СДХ^ + Ша1 +
Если множество совпадает со всем параллелепипедом П, то, очевидно, ^ = ^ = % и
где Tt = Tç (n + m) = (n + mjldlç,
T{N) = 2is + zTt +2C£i + i,^gC/CJru) + ZCCe +C#)f
Г© =Z(Ça +Cg
(1)
(2)
Из (1), (2) следует, что для времени параллельного решения Б-задачи имеет место оценка сверху
?Г(Л0 = к +2С„
а для времени последовательного решения - оценка
г+0)=хс£
гдеСег^е+С,С= С„+С,
Аналогично, из (1), (2) вытекает, что время параллельного решения Б-задачи может быть оценено снизу величиной а время решения задачи на одном процессоре - величиной
Г© = 2(С£ + рС, + С^У + а-/ОС/
Утверждение 1. Оценка ускорения сверху при статической балансировке равна
Г*©
оценка ускорения снизу - равна
Its+^+C^+ZC^
Т CD
Легко показать, что, как и следовало ожидать, при оценка стремится к максимально возможной,
равной количеству процессоров в системе Ж, а оценка - стремится к единице.
Утверждение 1 иллюстрирует Рис. 1. Рисунок показывает, что если положить =
Оке при
С, = 10*
оценка ускорения сверху близка ТУ, а оценка ускорения снизу слабо зависит от вычислительной сложности и
близка к единице.
Рис. 1. Оценки ускорения сверху и снизу при статической балансировке:
с_=с„ = О
№
4. Динамическая централизованная балансировка методом равномерной декомпозиции узлов
Разобьем узлы сетки на К= множеств *ге[1,г] и для простоты записи примем, что величина 2 кратна хЦ ,
так что каждое из множеств содержит по * иУ ^ узлов (см. Рис. 2). Тогда схема параллельных вычислений при решении Б-задачи с использованием динамической равномерной балансировки загрузки имеет следующий вид. Шаг 1. Яол/-процессор строит сетку и разбивает ее узлы на множества .
Шаг 2. Процессор ^ принимает от /?ол7-процессора координаты первого из нераспределенных множеств узлов ;
Шаг 3. Процессор ^ для точек назначенного ему текущего множества узлов выползет следующие действия:
• определяет принадлежность каждого из этих узлов множеству Пх;
• если узел принадлежит множеству Пх, то вычисляет в этом узле значение вектор-функции ^(Х);
• после завершения обработки текущего множества узлов посылает Ио51:-процессору вычисленные значения
Ях)
Шаг 4. Если исчерпаны не все множества , то /?ол/-процессор посылает, а процессор ^ принимает координаты следующего множества узлов которое обрабатывается процессором ^ аналогично шагу 3 и т.д. Шаг 5. Если исчерпаны все множества , то Ио51:-процессор
• посылает освободившемуся процессору Ц сообщение об окончании решения задачи,
• после получения всех вычисленных значений вектор-функции Г(Х) от всех процессоров вычисляет приближенное значение функционала Ф(Т(Х)}
та
'Л'
а •—
У
О.
Г-ч
•—•—•—*
_>
Рис. 2. Схема равномерного разбиения узлов для случая д = 1 (параллелепипед П представляет собой отрезок л = 4 , точками обозначены узлы сетки .
Заметим, что при к: — 1, когда количество множеств равно количеству процессоров в системе, динамическая
равномерная балансировка вырождается в статическую балансировку. При х: = г каждое из множеств содержит по одному узлу сетки О.
Аналогично п. 3 вычислительные и коммуникационные затраты процессора ^ на обработку множества узлов оцениваются величиной
Т1 =2^ + лиИге + лС^++
где ^ е[0,я] - количество узлов множества®^, принадлежащих множеству Пх. Для времени параллельного
решения Б-задачи при этом имеем оценку
ПЮ=тляг^У.г;++ £СФ *
где - список номеров множеств назначенных процессору £ - как и ранее, общее количество узлов сетки О, принадлежащих множеству Ох.
Отсюда следует, что если множество совпадает со всем параллелепипедом П, то
(3)
е т' = +Я(ГГ
В случае, когда вычислительные сложности всех узлов одинаковы, величина ^ представляет собой количество
множеств , назначенных каждому из процессоров ^ Поэтому в качестве оценки сверху времени параллельного решения Б-задачи из (3) имеем
Здесь учтено, что
*3
количество узлов сетки Q, назначенных каждому из процессоров
Объединим множества узлов в^ совокупностей О^Оа^-Д!,. по N множеств в каждой (см. Рис. 2). Если узел принадлежит совокупности то из (3) следует, что оценка снизу времени параллельного решения Б-задачи равна
Г,0,*г,Л0 = 2+ йтс + й(Сг + /1С,)* + 0- (4)
Отметим, что здесь й - общее количество узлов сетки обработанных процессором которому выпал узел В формуле (4) учтено, что процессор, которому выпал узел X*, в любом случае закончит работу не ранее других процессоров.
Так как вероятность того, что узел X* принадлежит совокупности узлов , равна
1
*т, из (4) следует, что средняя
по 1е[1,*г] оценка снизу времени параллельного решения Р-задачи определяется выражением
где Ц = 0.5(1.-Кг), А#[*] - символ математического ожидания.
Аналогично, пользуясь известным свойством полигамма функции [8], легко получить
выражение для средней по /е[1,*г] оценки ускорения снизу при параллельном решении Р-задачи
где Ь = + яТс + я(Се + с = (1-/1)0^+20^
Утверждение 2. Оценка ускорения сверху при динамической равномерной балансировке равна
г*©
оценка ускорения снизу - равна
^ОЖ АО
г- со
2й, +йТс +1я(Сг + /С,)*+ (1-/0С^+Ш^
средняя по *е[1,*г] оценка ускорения снизу - равна
+ се + /*:,)* + 0-/ОС/1
Ьк
-№НН1
где ТС*) - символ полигамма функции и ^ — + с — О-АКу* «
Анализ оценка ускорения сверху. Оценка Щ принимает минимальное значение при к: = г и максимальное
значение - при к;=1 Так что ^ С^^О — а ^аС^^У) — ^з О-^У) дегк0 видеть, при к;>1 оценка сверху
ускорения при динамической равномерной балансировке ^"О^^О меньше такой же оценки ^(лт, Л^) при статической балансировке. Потеря ускорения обусловлена тем фактом, что при динамической равномерной балансировке количество актов обмена каждого из процессоров ^ с /?ол7-процессором больше, чем при статической балансировке, и поэтому выше
коммуникационные расходы, обусловленные латентностью коммуникационной сети.
Таким образом, относительная оценка ускорения сверху при динамической равномерной балансировке удовлетворяет
неравенству пи С^О — И^С^-ЙО < 0, где нижняя граница Т^СО соответствует нижней границе ^(г,Л^) Легко показать, что при величина ши ^СУ) стремится к нулю (см. Рис. 3).
Зависимость пш ^ иллюстрирует Рис. 3. Рисунок показывает, что уже при =Ю5 потери ускорения не превышают 10%. Отметим также слабую зависимость величины пи 17г"СА7) от количества процессоров в системе N.
-О 1 -0 11 -оЛ ■ЛИ -о.э
N
Цщ =10<,о-С/ = 5*104,*-С, =105
Рис. 3. Нижняя граница относительной оценки ускорения сверху при динамической равномерной балансировке:
С -С -I
Анализ оценки ускорения снизу. Легко показать, что оценка ^(¿.с.-ЛТ) в треугольнике допустимых значений {/еР^г^кге^г],! < принимает свое минимальное значение при / = иг = .г, а свое максимальное значение - при 1 = 1, х: = г Поэтому относительная оценка ускорения снизу при динамической равномерной балансировке удовлетворяет
неравенству пи < (¿,*г, Л) < так Г}7 (Л), где нижняя граница этой оценки пи ^ (Л) соответствует величине
, а ее верхняя граница ши - величине Отметим, что ситуация = г означает, что каждое из
множеств содержит по одному узлу сетки О Так что граница и» достигается в ситуации, когда узел X* - эт0
последний узел, распределенный некоторому процессору Р[. Аналогично, граница тая: С^О достигается, когда узел X* ~ это первый узел, распределенный процессору ^
Граница пи ^(Л) является отрицательной величиной и имеет, таким образом, смысл потери ускорения по сравнению со статической балансировкой. Аналогично, граница тая: (Д7) имеет смысл приобретения ускорения. Легко показать, что при ^ —> <® величина пи стремится к нулю, а величина тая: С^О стремится к /^г—1).
Зависимости пи Ч^ХЙТ), тая: щ (А7) иллюстрирует Рис. 4. Рисунок показывает, что при небольшом количестве
процессоров (~10) и вычислительной сложности »ИИ-^-Ю5 относительное увеличение ускорения может превышать 10 раз, а его относительное уменьшение - не более двух раз.
т ах Ш *о
д
\
\
\ \
\ '
^^---, :—— --——ч.----
так тт Щ N
*-С. = 104,о-С, = 5*10\х-С/ =105 Рис. 4. Нижняя и верхняя границы относительной оценки ускорения снизу при динамической равномерной балансировке: СЕ = 0 р. = 001
5. Динамическая централизованная балансировка загрузки методом экспоненциальной декомпозиции узлов
На к-ой итерации экспоненциальной декомпозиции узлов среди оставшихся ^ узлов сетки выделяется множество
гъ = —
узлов , содержащее р узлов, где целая положительная величина р - коэффициент декомпозиции. Для простоты записи положим, что величины ^ кратны р, а величины ^ кратна количеству процессоров в системе ТУ, так что
^ =
подмножества ] содержат по " р" узлов (см. Рис. 5). Тогда схема параллельных вычислений при решении Р-
задачи с использованием динамической экспоненциальной балансировки загрузки имеет следующий вид.
Шаг 1. //ол7-процессор строит сетку О и присваивает счетчику количества итераций к значение 1 (принято, что
Шаг 2. Если исчерпаны не все узлы сетки О, то /?ол7-процессор выделяет среди ^ узлов этой сетки множество узлов
Шаг 3. Если множество узлов не исчерпано, то /?ол7-процессор передает, а процессор ^ принимает от него координаты узлов подмножества ^ .
Шаг 4. Процессор ^ для узлов текущего подмножества ^^ выполняет следующие действия:
• определяет принадлежность каждого из этих узлов множеству Пх;
• если узел принадлежит множеству Пх, то вычисляет в этом узле значение вектор-функции ^(Х);
• после завершения обработки текущего подмножества узлов посылает Ьо51:-процессору найденные им значения вектор-функции -РрО;
Шаг 5. Если множество узлов исчерпано, то /?ол7-процессор выполняет присваивания к=к+1, ^ и
переходит к шагу 2.
Шаг 6. Если исчерпаны все узлы сетки то Ьо51:-процессор
• посылает освободившемуся процессору сообщение об окончании решения задачи,
• после получения всех вычисленных значений вектор-функций Г(Х) от всех процессоров вычисляет приближенное значение функционала Ф(Т(Х)}
га.
1,1
га
из
ш<
9,1
га5
/-г-\ г-ч
"У"
к
^ = 512,^ = 64 78=4,^=1
Рис. 5. Схема экспоненциального разбиения узлов для случая л = 1: =1024,/? = = 8, точками обозначены
узлы сетки О.
Заметим, что количества узлов в соседних подмножествах, назначенных процессору не обязательно различны -
возможна ситуация, когда процессор ^ получит два и более подмножества узлов из одного множества ^.
Ограничимся далее случаем р = 2. При этом общее количество множеств Нравно гДе
~I) =Ьч;2г, 1 21 > ^^В.*^], 1Г и я«*1=1 (см- Рис 5). Подчеркнем, что в данном случае, в
отличие от п. 4, величина ^ не является независимой величиной (а определяется величинами К).
Сумма вычислительных и коммуникационных затрат Т^ процессора ^ на обработку подмножества узлов оценим величиной
Г/ = ^ ^С/
где е - количество узлов подмножества принадлежащих множеству Отсюда
имеем оценку времени параллельного решения Б-задачи
где {^./Ь - список номеров подмножеств назначенных процессору ^
Если множество совпадает со всем параллелепипедом П, то = ^ =2',
^ = + ж Д + + ^СДХ^)
Из (5) следует, что оценка сверху времени параллельного решения Б-задачи равна
= 2(*г + +гТс+ гС^
Если узел х* принадлежит множеству , то время параллельного решения Р-задачи оценивается снизу
величиной
Т-^КЩ = 24 +г(Т,(Се (1-/ОС/(6)
Здесь величина - общее количество узлов, назначенных для обработки процессору, которому выпал узел X* Если
то
сумма £ членов геометрической прогрессии 2 2
11 1
2* ; если *г=1с+1, то 0^=1.
Формула (6) учитывает тот факт, что процессор, которому выпал узел ^ , закончит работу не ранее других процессоров.
Поскольку вероятность того, что узел х" принадлежит множеству узлов равна 1 2* ПРИ и равна
Р=Л = « =г
при г+1, то средняя по £е[1,*г+1] оценка снизу времени параллельного решения Р-задачи равна
где
гД
к = Ел* =Е ^г++1> +2-* - Г)++1)=2
ы ^
ы
гЛ
Я
ы
О.
Чъ = - Е^й - 2
с<1
и
+ +2)
Заметим, что в оценке ^зС^О приближенность равенства обусловлена только тем фактом, что для простоты записи мы не использовали в ней, как следовало бы, целочисленные аппроксимации величин .
Аналогично, средняя по оценка ускорения снизу при параллельном решении Б-задачи может быть
вычислена по формуле
' 1 1
Утверждение 3. Оценка ускорения сверху при динамической экспоненциальной балансировке равна
га
оценка ускорения снизу - равна
5ЦКЩ
2(г + IX + ^ о
+св++о /Ос/
+ + + /*:,)* + О -/ОС/+ Ж^*
если Л: е [1,*г], и о^ = 1 •
Анализ оценки ускорения сверху. Относительная оценка ускорения сверху Чз С^О удовлетворяет неравенству
. Т.е. при динамической экспоненциальной балансировке по сравнению со статической балансировкой могут иметь место потери ускорения. Так же, как при динамической равномерной балансировке, эти потери обусловлены латентностью коммуникационной сети. Легко показать, что при ~~^ го величина (^0 стремится к нулю.
Зависимость С^О иллюстрирует Рис. 6, который показывает, что с ростом вычислительной сложности потери
ускорения быстро уменьшаются и уже при вычислительной сложности С/ =Ю5 не превышают 3%. Отметим, что с ростом количества процессоров в системе потери ускорения по абсолютной величине возрастают.
Рис. 6. Относительная оценка ускорения сверху при динамической экспоненциальной балансировке:
С =с„ = О
№
Анализ оценки ускорения снизу Оценка достигает своего минимального значения при а своего
максимального значения - при к = 1 Отсюда следует, что относительная оценка ускорения снизу при динамической
экспоненциальной балансировке удовлетворяет неравенству ™ >ЬЧАО ^ <тах (АО. Здесь нижняя граница
пй соответствует величине т.е., как и ожидалось, достигается в случае, когда узел X* принадлежит
последнему из множеств ^ Аналогично, верхняя граница пия: соответствует величине , т.е.
достигается, когда узел X* принадлежит первому из множеств
Легко показать, что при
С,->оо
оценка ^ (1,^0 стремится к величине Мг^ —1) + 1. Поскольку <1 при всех
допустимых к, то отсюда следует, что оценка неотрицательна. Т.е. оценка ускорения снизу при динамической
экспоненциальной балансировке не хуже такой же оценки при статической балансировке. Далее, отсюда же следует, что при
^ —> ® нижняя граница ™ Щ (АО стремится к нулю, а верхняя граница ии щ (А?) стремится к величине //(г — 2) + 2 .
Зависимости
иллюстрирует Рис. 7. Рисунок показывает, что при небольшом количестве
процессоров (до ~10) и вычислительной сложности «Ю4 : Ю5 относительное увеличение оценки ускорения снизу может
превышать 30 раз. Отметим, что в тех же условиях динамическая равномерная балансировка обеспечивает относительное увеличение ускорения до примерно 15 раз (см. п. 4).
тш (/-Г) я
тах!?3 (Ъ!)
---■
N
= ю\о-с, = 5*ю\х-с/ = ю5
Рис. 7. Нижняя и верхняя границы относительной оценки ускорения снизу при динамической экспоненциальной балансировке: С£ = 0 р — 001
6. Динамическая децентрализованная балансировка загрузки диффузным методом
Схема параллельных вычислений при решении Б-задачи с использованием метода диффузной балансировки загрузки имеет следующий вид.
Шаг 1. //ол7-процессор строит сетку О и разбивает ее узлы надмножеств по г узлов в каждом.
Шаг 2. Процессор Р-[ .
• принимает от процессора координаты узлов множества ;
• последовательно для всех узлов этого множества определяет их принадлежность множеству Пх;
• если узел принадлежит множеству Пх, то вычисляет в этом узле значение вектор-функции ^(Х);
• передает /юлУ-процессору вычисленные значения вектор-функции ^(Х)
Шаг 3. Если процессор ^ закончил вычисления и передал /?ол7-процессору вычисленные значения вектор функции ЯХ) то этот процессор:
Р
• посылает запрос некоторому процессору ;
• если процессор имеет необработанные узлы, то процессор ^ принимает от процессора координаты
р части из них;
посылает сообщение host-процессору об этом факте (для того, чтобы host-процессор имел возможность определить момент завершения решения задачи).
Шаг 4. Процессор
• в каждом из принятых узлов вычисляет значение вектор-функции ^(Х),
• передает /юлУ-процессору вычисленные значения вектор-функции ^(Х)
Шаг 5. #а$7-процессор после получения от всех процессоров сообщений о завершении вычислений посылает всем им сообщение о завершении решения задачи и на основе полученных значение вектор-функции -РфО вычисляет приближенное
значение функционала ФОЧХ)}
Здесь р - коэффициент декомпозиции остатка узлов. Ограничимся случаем, когда р = 2 и множество совпадает
со всем параллелепипедом П.
Легко видеть, что если вычислительные сложности одинаковы и равны Сд х0 ПрИ диффузной балансировке
перераспределения узлов не производится и диффузная балансировка превращается в статическую балансировку. Поэтому оценка ускорения сверху совпадает с такой же оценкой при статической балансировке (см. п. 1).
Положим, что узлом х" является узел е Ц , ¿е[1,г]. Тогда время параллельного решения Р-задачи может быть
оценено снизу величиной
= +2Тс(п) + ЪТс(т) + КСЕ +(1//)С/+Га + (7)
где (и) = лИтг, Гс (т) = 1яИге, Та = Та(КЩ
- расходы процессора, которому выпал для обработки узел X* обусловленные
перераспределением между другими процессорами системы необработанных узлов -^"у, (такие узлы имеются,
очевидно, в случае, когда к<г) Заметим, что формула (7) учитывает, что процессор, которому выпал узел закончит работу не ранее других процессоров.
Пренебрежем вычислительными расходами на декомпозицию необработанных узлов. Тогда величина включает в
себя только коммуникационные расходы и ее оценка при к< г равна — д£^ +(г-1)Т((и), а при к= г - равна — 0.
Здесь д »1пр2(г —Л:) +1 и точное равенство имеет место, если величина (г—£) есть целая степень двух.
Легко видеть, что вероятность того, что узел X* является £-м узлом одного из множеств узлов равна г ■ Поэтому из (7) следует, что средняя по £е[1,г] оценка снизу времени параллельного решения Р-задачи равна
г + 1
где д-1 — 2 +г-1кч*а((г—1)0, 2 и приближенность равенства обусловлена только тем фактом, что для простоты
записи здесь не использованы целочисленные аппроксимации величин •
Аналогично, средняя по оценка ускорения снизу при параллельном решении Р-задачи может быть вычислена
по формуле
^00
Утверждение 4. Оценка ускорения сверху при диффузной балансировке равна оценке ускорения сверху при статической балансировке, т. е.
оценка ускорения снизу - равна
^(К АО * Р+ 9К + 2гТс(Л) - *(Г£(Я) -Тс (ив)) + + + а- /ОС/ где д «1ие3(2г-*г)+1*
Анализ оценки ускорения снизу. Легко показать, что поведение оценки ^(к,АО, как функции величины зависит от вычислительной сложности При выполнении неравенства
(8)
оценка №,АО является возрастающей функцией величины при выполнении неравенства
убывающей функцией этой же величины. Например, если пренебречь величиной ^("О, то при тестовых значениях параметров задачи и МВС имеем: (5*0 » 0_8*10в 5 С~(5ф «1.5*10в.
При промежуточных значениях вычислительной сложности на интервале ) оценка ^(к, АО является возрастающей функцией величины к-, а на интервале (к - убывающей функцией этой же величины. Здесь
Г*'] - ближайшее целое большее у .
Относительная оценка ускорения снизу при диффузной балансировке удовлетворяет неравенству
тт С^О — ЧГС^АО ^пия: т^(АО. При выполнении условия (8) нижняя граница пт »¿¡"(АО соответствует величине АО, а верхняя граница тая: т^(АО - величине Аналогично, при выполнении условия (9) нижняя граница
соответствует величине ^(г,АО, а верхняя граница - величине .
Ситуация к = г означает, что узел X* является последним из узлов некоторого множества . Поэтому процессор, которому выпал узел х*, должен будет обработать все узлы множества т.е. перераспределение узлов в данном случае не будет иметь место. Таким образом, при к = г диффузная балансировка вырождается в статическую балансировку и при выполнении условия (8) тая: 17^(АО = 0, а при выполнении условия (9) - пт т^(АО = 0.
Поскольку при выполнении условия (8) верхняя граница относительной оценки ускорения снизу тая: 74 (А?) равна нулю, величина пи »ТГ(А7) отрицательна. Таким образом, при выполнении условия (8) имеют место потери ускорения по сравнению со статической балансировкой. Потери ускорения обусловлены расходами на перераспределение между другими процессорами системы необработанных узлов, т.е. компонентой ТЛКЩ в выражении (7).
Напротив, при выполнении условия (9) нижняя граница относительной оценки ускорения снизу шт равна
нулю. Поэтому величина тая: т^(А7) положительна, т.е. при выполнении условия (9) имеет место приобретение ускорения по сравнению со статической балансировкой.
Зависимость пи »/¡ХАТ) при малой вычислительной сложности < С^1 (А?) иллюстрирует Рис.8, зависимость
тах. гй{Щ при большой вычислительной сложности > ^т" (АО иллюстрирует Рис.9.
Рис. 8. Нижняя граница относительной оценки ускорения снизу при диффузной балансировке:
С/<С7(А0
сг=со,=° //=001 ^ О) = Т^ТС О) = о
Рис. 9. Верхняя граница относительной оценки ускорения снизу при диффузной балансировке: Сг>Ср (АО, = = 0, = 001, г( (в) = Г(, Гс (т) = 0_
Рисунки 8, 9 показывают, что при небольшом количестве процессоров (до ~10) и малой вычислительной сложности С/ потери ускорения могут достигать 50%, а приобретения ускорения при большой вычислительной сложности - могут превышать 4 раз.
Легко показать, что при >т величина стремится к величине +1 . Отсюда следует, что в
пределе аналогично динамической равномерной балансировке верхняя граница тая: 1/4 (АО стремится к величине /|(г—1).
7. Заключение
Результаты работы позволяют выполнить сравнительный анализ эффективности статической, динамической равномерной, динамической экспоненциальной и диффузной балансировки загрузки при решении F-задачи в зависимости от ее параметров и параметров используемой МВС. Это, в конечном счете, позволяет сделать обоснованный выбор метода балансировки загрузки или совокупности таких методов для решения конкретной F-задачи.
Выполненное исследование не закрывает всех вопросов, связанных с эффективностью указанных методов
балансировки. Например, не удается аналитическое определение оптимального количестве множеств E^t е[1,1Г| для
динамической равномерной балансировки при промежуточных значениях дисперсии вычислительной сложности
Поэтому предполагаются дополнительные исследования с помощью имитационного моделирования [9] и натурных вычислительных экспериментов.
Литература.
1. Foster I. Designing and building parallel programs: concept and tools for parallel software engineering. - Boston.: Addison-Wesley, 1995.
2. Воеводин В.В., Воеводин Вл., В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2004.
3. Карпенко А.П., Шурайц Ю.М. Параллелизм методов интегрирования дифференциальных уравнений в частных производных // Автоматика и телемеханика. - 1992, №10, с. 3-20.
4. Танненбаум Э. Современные операционные системы. 2-е изд - СПб.:Питер.-1038 с.
5. Карпенко А.П., Пупков К. А. Моделирование динамических систем на транспьютерных сетях -М.: Биоинформ, 1995.
6. Волков К.Н. Применение средств параллельного программирования для решения задач механики жидкостей и газа на многопроцессорных вычислительных системах // Вычислительные методы и программирование. - 2006, Т.7, с. 69 - 84.
7. Gubenko G. Dynamic load Balancing for Distributed Memory Multiprocessors // Journal of parallel and distributed computing. -
8. Бейтман Г., Эрдейи Л. высшие трансцендентные функции. Гипергеометрические функции. Функции Лежандра. -М., Наука, 1965.
9. Шрайбер Т.Дж. Моделирование на GPSS. -М., Машиностроение, 1980.
Публикации с ключевыми словами: динамическая балансировка - статическая балансировка - решение вычислительных задач -многопроцессорые вычислительные системы - МВС
Публикации со словами: динамическая балансировка - статическая балансировка - решение вычислительных задач -многопроцессорые вычислительные системы - МВС См. также:
■ Статическая и динамическая балансировка Написать комментарий >>
1989. 7, pp. 279 -301.
УЧАСТНИК ¿fflb
ГТШЯДдЩ
Журнал | Портал | Раздел Copyright © 2003 «Наука и образование. Инженерное образование» E-mail: [email protected] | тел.: +7 (495) 263-68-67
Вход для редакторов