|
|
Исследование эффективности балансировки загрузки многопроцессорной системы при распараллеливании
одного класса вычислительных задач # 8, август 2007
УДК 519.6
Карпенко А.П., Федорук В.Г., Федорук Е.В.
1. Введение Схема решения достаточно широкого класса вычислительных задач (далее – F-задач) неформально может быть представлена в следующем виде: область решения задачи покрывается некоторой сеткой; в узлах сетки производятся вычисления значений функций, ассоциированных с этими узлами; на основе вычисленных значений формируется решение задачи. В виде такой схемы может быть представлено, например, решение задачи глобальной условной оптимизации комбинацией метода случайного поиска с каким-либо методом локальной оптимизации, построение некоторыми методами множества Парето в задаче многокритериальной оптимизации и пр. Непосредственным стимулом для написания данной работы явилась проблематика организации параллельных вычислений при решении задач многокритериальной оптимизации. Принципиальными являются следующие обстоятельства: 1)для вычисления значений функций, ассоциированных с узлами сетки, используется одна и та же программа; 2)для работы этой программы необходима информация только о тех узлах, которые она обрабатывает; 3)вычислительные сложности указанных функций являются случайными величинами с неизвестными статистическими характеристиками, т.е. вычислительные сложности непредсказуемо различны в различных узлах сетки; 4)формирование решения всей задачи выполняется на основе значений функций, ассоциированных с узлами сетки. В случае, когда суммарная вычислительная сложность указанных функций велика, целесообразно решение 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) динамическая децентрализованная балансировка диффузным методом, в котором перераспределение загрузки производится по инициативе получателя - диффузная балансировка. В последнем случае рассматривается перераспределение загрузки только по инициативе получателя, поскольку для F-задачи такой алгоритм более эффективен, чем перераспределение загрузки по инициативе отправителя. При этом возможно использование детерминированных и стохастических алгоритмов поиска отправителя. С точки зрения используемой в работе методики оценки эффективности балансировки эти алгоритмы эквивалентны. Поэтому алгоритм поиска отправителя в работе не фиксируется.
2. Постановка F-задачи
Пусть
На
множестве Приближенное решение поставленной F-задачи, полагается, может быть найдено по следующей схеме.
Шаг
1. Покрываем параллелепипед П некоторой сеткой
Шаг
2. В тех узлах сетки
Шаг
3. На основе вычисленных значений вектор функции
Суммарное
количество арифметических операций, необходимых для однократного определения
принадлежности вектора X множеству
Неизвестную
вычислительную сложность вектор-функции
Вычислительную
сложность конечномерной аппроксимации функционала
В
качестве вычислительной системы рассмотрим однородную МВС с распределенной
памятью, состоящую из процессоров
В
качестве меры эффективности параллельных вычислений используем ускорение
Оценка
ускорения сверху
Оценка ускорения
снизу
Основные
результаты в работе получены для случая, когда множество
Все графики в работе
получены в системе MATLAB при
следующих «тестовых» значениях параметров F-задачи
и
МВС:
3. Статическая балансировка
Для
F-задачи статическую балансировку загрузки естественно
организовать с использованием геометрической схемы распараллеливания [2], при
которой узлы сетки Шаг 1. Host-процессор строит сетку Шаг 2. Процессор
·
принимает от host-процессора координаты
узлов множества ·
последовательно для всех узлов этого множества определяет их
принадлежность множеству ·
вычисляет в каждом из · передает host-процессору вычисленные значения и заканчивает вычисления.
Шаг
3. Host-процессор на основе полученных
значений вектор-функции
В
соответствии с изложенной схемой время решения F-задачи
на процессоре
где
Аналогично, оценка времени решения задачи на одном процессоре равна
Если
множество
где
Из (1), (2) следует, что для времени параллельного решения F-задачи имеет место оценка сверху
а для времени последовательного решения – оценка
где Аналогично, из (1), (2) вытекает, что время параллельного решения F-задачи может быть оценено снизу величиной
а время решения задачи на одном процессоре – величиной
Утверждение 1. Оценка ускорения сверху при статической балансировке равна
оценка ускорения снизу - равна
Легко
показать, что, как и следовало ожидать, при
Утверждение
1 иллюстрирует Рис. 1. Рисунок показывает, что если положить
Рис.
1. Оценки ускорения сверху и снизу при статической балансировке:
4. Динамическая централизованная балансировка методом равномерной декомпозиции узлов Разобьем узлы
сетки Шаг 1. Host-процессор строит сетку Шаг 2. Процессор
Шаг 3. Процессор
·
определяет принадлежность каждого из этих узлов множеству ·
если узел принадлежит множеству ·
после завершения обработки текущего множества узлов
Шаг 4. Если
исчерпаны не все множества Шаг 5. Если
исчерпаны все множества ·
посылает освободившемуся процессору ·
после получения всех вычисленных значений вектор-функции
Рис. 2. Схема
равномерного разбиения узлов для случая
Заметим, что при
Аналогично
п. 3 вычислительные и коммуникационные затраты процессора
где
где
Отсюда
следует, что если множество
где
В случае,
когда вычислительные сложности всех узлов одинаковы, величина
Здесь учтено, что
Объединим множества
узлов
Отметим, что
здесь
Так
как вероятность того, что узел
где
Аналогично,
пользуясь известным свойством полигамма функции
где Утверждение 2. Оценка ускорения сверху при динамической равномерной балансировке равна
оценка ускорения снизу - равна
средняя по
где Анализ оценка
ускорения сверху. Оценка
Таким образом,
относительная оценка ускорения сверху при динамической равномерной балансировке
удовлетворяет неравенству
Зависимость
Рис. 3. Нижняя
граница относительной оценки ускорения сверху при динамической равномерной
балансировке:
Анализ оценки ускорения снизу. Легко показать, что оценка
Граница
Зависимости
Рис. 4. Нижняя
и верхняя границы относительной оценки ускорения снизу при динамической
равномерной балансировке:
5. Динамическая централизованная балансировка загрузки методом экспоненциальной декомпозиции узлов На k-ой итерации экспоненциальной декомпозиции узлов среди
оставшихся Шаг 1. Host-процессор строит сетку Шаг 2.
Если исчерпаны не все узлы сетки Шаг 3. Если
множество узлов Шаг 4.
Процессор
·
определяет принадлежность каждого из этих узлов множеству ·
если узел принадлежит множеству ·
после завершения обработки текущего подмножества узлов
Шаг 5. Если
множество узлов Шаг 6. Если
исчерпаны все узлы сетки ·
посылает освободившемуся процессору ·
после получения всех вычисленных значений вектор-функций
Рис. 5. Схема
экспоненциального разбиения узлов для случая
Заметим, что
количества узлов
Ограничимся далее
случаем
Сумма вычислительных
и коммуникационных затрат
где
где
Если
множество
Из (5) следует, что оценка сверху времени параллельного решения F-задачи равна
Если узел
Здесь величина
Поскольку вероятность
того, что узел
где
Заметим, что в оценке
Аналогично,
средняя по
Утверждение 3. Оценка ускорения сверху при динамической экспоненциальной балансировке равна
оценка ускорения снизу - равна
где
Анализ оценки
ускорения сверху. Относительная оценка ускорения сверху
Зависимость
Рис. 6.
Относительная оценка ускорения сверху при динамической экспоненциальной
балансировке:
Анализ оценки
ускорения снизу Оценка
Легко показать, что
при
Зависимости
Рис. 7. Нижняя
и верхняя границы относительной оценки ускорения снизу при динамической
экспоненциальной балансировке:
6. Динамическая децентрализованная балансировка загрузки диффузным методом Схема параллельных вычислений при решении F-задачи с использованием метода диффузной балансировки загрузки имеет следующий вид. Шаг 1. Host-процессор строит сетку Шаг 2. Процессор
·
принимает от host-процессора координаты
узлов множества ·
последовательно для всех узлов этого множества определяет их
принадлежность множеству ·
если узел принадлежит множеству ·
передает host-процессору
вычисленные значения вектор-функции
Шаг
3. Если процессор ·
посылает запрос некоторому процессору ·
если процессор · посылает сообщение host-процессору об этом факте (для того, чтобы host-процессор имел возможность определить момент завершения решения задачи).
Шаг
4. Процессор ·
в каждом из принятых узлов вычисляет значение вектор-функции ·
передает host-процессору
вычисленные значения вектор-функции
Шаг
5. Host-процессор после получения от всех
процессоров сообщений о завершении вычислений посылает всем им сообщение о
завершении решения задачи и на основе полученных значение вектор-функции Здесь
Легко видеть, что
если вычислительные сложности Положим, что
узлом
где
Пренебрежем
вычислительными расходами на декомпозицию необработанных узлов. Тогда величина
Легко
видеть, что вероятность того, что узел
где
Аналогично,
средняя по
Утверждение 4. Оценка ускорения сверху при диффузной балансировке равна оценке ускорения сверху при статической балансировке, т.е.
оценка ускорения снизу - равна
где
Анализ
оценки ускорения снизу. Легко показать, что поведение оценки
оценка
убывающей
функцией этой же величины. Например, если пренебречь величиной
При
промежуточных значениях вычислительной сложности
Относительная
оценка ускорения снизу при диффузной балансировке
Ситуация
Поскольку
при выполнении условия (8) верхняя граница относительной оценки ускорения снизу
Напротив,
при выполнении условия (9) нижняя граница относительной оценки ускорения снизу
Зависимость
Рис. 8. Нижняя
граница относительной оценки ускорения снизу при диффузной балансировке:
Рис. 9.
Верхняя граница относительной оценки ускорения снизу при диффузной
балансировке:
Рисунки
8, 9 показывают, что при небольшом количестве процессоров (до ~10) и малой
вычислительной сложности
Легко
показать, что при
7. Заключение Результаты работы позволяют выполнить сравнительный анализ эффективности статической, динамической равномерной, динамической экспоненциальной и диффузной балансировки загрузки при решении F-задачи в зависимости от ее параметров и параметров используемой МВС. Это, в конечном счете, позволяет сделать обоснованный выбор метода балансировки загрузки или совокупности таких методов для решения конкретной F-задачи.
Выполненное
исследование не закрывает всех вопросов, связанных с эффективностью указанных
методов балансировки. Например, не удается аналитическое определение
оптимального количестве множеств
Литература. 1. Foster I. Designing and building parallel programs: concept and tools for parallel software engineering. – Boston.: Addison-Wesley, 1995. 2. Воеводин В.В., Воеводин Вл., В. Параллельные вычисления. – СПб.: БХВ-Петербург, 2004. 3. Карпенко А.П., Шурайц Ю.М. Параллелизм методов интегрирования дифференциальных уравнений в частных производных // Автоматика и телемеханика. - 1992, №10, c. 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. – 1989. 7, pp. 279 -301. 8. Бейтман Г., Эрдейи Л. высшие трансцендентные функции. Гипергеометрические функции. Функции Лежандра. –М., Наука, 1965. 9. Шрайбер Т.Дж. Моделирование на GPSS. –М., Машиностроение, 1980.
Публикации с ключевыми словами: динамическая балансировка, статическая балансировка, решение вычислительных задач, многопроцессорые вычислительные системы, МВС Публикации со словами: динамическая балансировка, статическая балансировка, решение вычислительных задач, многопроцессорые вычислительные системы, МВС Тематические рубрики: |
|
|||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||