
Лабораторная работа №2
Аналитическое исследование эффективности статической балансировки загрузки мвс
1. Цель работы
Целью работы является изучение двух следующих методов статической балансировки загрузки многопроцессорной вычислительной системы (МВС) [1, 2]: 1) балансировка загрузки на основе геометрической схемы декомпозиции области решения; 2) балансировка загрузки на основе равномерной декомпозиции узлов расчетной сетки.
2. Теоретическая часть
2.1. Постановка задачи. Пусть-n-мерный вектор параметров
задачи. Положим, что
,
где
-n-мерное арифметическое
пространство. Параллелепипедом допустимых
значений вектора параметров назовем
не пустой параллелепипед
,
где
- заданные константы. На векторXдополнительно наложено некоторое
количество функциональных ограничений,
формирующих множество
,
где
- непрерывные ограничивающие функции.
На множестве
тем или иным способом (аналитически
или алгоритмически) определена
вектор-функция
со значениями в пространстве
.
Ставится задача поиска значения
некоторого функционала
.
Положим, что приближенное решение поставленной задачи может быть найдено по следующей схеме.
Шаг 1. Покрываем параллелепипедПнекоторой сеткой(равномерной или неравномерной,
детерминированной или случайной) с
узлами
.
Шаг 2. В тех узлах сетки,
которые принадлежат множеству
,вычисляем значения вектор функции
.
Шаг 3. На основе вычисленных значений
вектор функциинаходим приближенное значение функционала
.
В виде рассмотренной схемы можно
представить, например, решение задачи
вычисления многомерного определенного
интеграла от функции
в области
.
Суммарное числоарифметических операций,
необходимых для однократного определения
принадлежности вектораXмножеству(т.е. суммарную вычислительную сложность
ограничений
и ограничивающих функций
),
обозначим
.
Вообще говоря, величина
зависит от вектораX.
Мы, однако, пренебрежем этой зависимостью,
и будем полагать, что имеет место
равенство
.
Заметим, что до начала вычислений
величина
,
как правило, неизвестна. Однако в процессе
первого же определения принадлежности
некоторого узла сетки
множеству
,эту величину можно легко определить
(с учетом предположения о независимости
этой величины от вектораX).
Поэтому будем полагать величину
известной.
Неизвестную вычислительную сложность
вектор-функции
обозначим
.
Подчеркнем зависимость величины
от вектораX. Величина
удовлетворяет, во-первых, очевидному
ограничению
.
Во-вторых, положим, что известно
ограничение сверху на эту величину
,
имеющее смысл ограничения на максимально
допустимое время вычисления значения
.
Вычислительную сложность
назовем вычислительной сложностью узла
,
.
Вычислительную сложность генерации
сетки
положим равной
,
а вычислительную сложность конечномерной
аппроксимации функционала
- равной
,
где
(дзета) - общее количество узлов сетки
,
принадлежащих множеству
.Положим, что при данных
величины
- известные константы.
В качестве вычислительной системы
рассмотрим однородную МВС с распределенной
памятью, состоящую из процессоров
иhost-процессора,
имеющих следующие параметры:
– время выполнения одной арифметической операции с плавающей запятой;
- диаметр коммуникационной сети;
l – длина вещественного числа в байтах;
– латентность коммуникационной сети;
– время передачи байта данных между двумя соседними процессорами системы без учета времени
.
В качестве меры эффективности параллельных вычислений используем ускорение
,
где
- время последовательного решения задачи
на одном процессоре системы,
- время параллельного решения той же
задачи наNпроцессорах,
- номер метода балансировки. Будем
рассматривать также в качестве меры
эффективности параллельных вычислений
асимптотическое ускорение
,
где
- время параллельного решения задачи
наNпроцессорах без
учета коммуникационных расходов (когда
).
2.2. Статическая балансировка загрузки
методом равномерной декомпозиции
параллелепипеда П. Для
балансировки загрузки при решении
рассматриваемой задачи можно использовать
различные методы статической и
динамической балансировки загрузки.
Простейшим является статический метод
на основе декомпозиции параллелепипедаПнаравных подобластей и назначении каждой
из этих подобластей своему процессору.
Назовем данный метод балансировки
методом равномерной декомпозиции
параллелепипедаП. Для двумерного
случая
этот метод балансировки иллюстрирует
рис. 1.
Балансировка загрузки методом декомпозиции параллелепипеда Почень проста в реализации. Однако она может быть малоэффективной в следующем случае:
объем пересечения параллелепипеда Пи множества
(т.е. объем множества
) невелик по сравнению с объемом параллелепипедаП;
вычислительная сложность
значительно превышает вычислительную сложность
.
При этом некоторые из подобластей
могут не содержать вовсе или содержать
малое количество узлов сетки
,
принадлежащих множеству
,
и процессоры МВС, которым распределены
такие подобласти, будут значительное
время простаивать.
Рис. 1. К балансировке загрузки методом равномерной декомпозиции параллелепипедаП
Введем следующие обозначения:
- множество узлов сетки
, покрывающих подобласть
,
;
,
- число узлов во множестве
,
, а
- символ ближайшего целого большего;
,
- число узлов сетки
, принадлежащих множеству
;
,
,
- узлы сетки
, принадлежащие множеству
;
- общее число узлов сетки
, принадлежащих множеству
;
.
В этих обозначениях схему параллельных вычислений при решении рассматриваемой задачи с использованием балансировки загрузки методом равномерной декомпозиции параллелепипеда Пможно представить в следующем виде.
Шаг 1. Host-процессор выполняет следующие действия:
строит сетку
;
плоскостями, параллельными одной из координатных плоскостей, разбивает ее узлы на множества
;
передает процессору
координаты узлов множества
.
Шаг 2. Процессорвыполняет следующие действия:
принимает от host-процессора координаты узлов множества
;
последовательно для всех
узлов этого множества определяет их принадлежность множеству
;
вычисляет в каждом из
узлов множества
значение вектор-функции
;
передает host-процессору
вычисленных значений и заканчивает вычисления.
Шаг 3. Host-процессор выполняет следующие действия:
принимает от процессоров
,
вычисленные ими значения вектор-функции
;
на основе
полученных значений вектор-функции
вычисляет приближенное значение функционала
.
Очевидна модификация балансировки
загрузки методом равномерной декомпозиции
параллелепипеда П, при которой
множество узловстроится неhost-процессором,
а процессором
,
.
При этомhost-процессору
достаточно передать процессору
лишь границы «его» подобласти
.
За счет распараллеливания процедуры
генерации расчетной сетки
и, возможно, меньшего количества обменов
следует ожидать, что эффективность
такого метода балансировки будет выше,
чем эффективность метода равномерной
декомпозиции параллелепипедаП.
Отметим, что указанная модификация
рассматриваемого метода возможна лишь
в том случае, когда можно отказаться от
централизованной генерации расчетной
сетки.
Можно предложить и другую модификацию
метода равномерной декомпозиции
параллелепипеда П, направленную на
повышение его эффективности. Разделим
областьна подобласти
,
таким образом, чтобы их объемы пересечений
с множеством
были примерно одинаковы. Если при этом
использовать равномерную сетку
,
то ее количество узлов в каждой из
подобластей
,
в отличие от исходной схемы метода
декомпозиции параллелепипедаП,
будет примерно одинаковым. Если множество
имеет сложную топологию, то построение
такого разбиения области
на подобласти может иметь неприемлемо
высокую вычислительную сложность.
В соответствии с изложенной схемой
балансировки загрузки методом равномерной
декомпозиции параллелепипеда П,
время решения задачи на процессореможно оценить величиной
,
, (1)
где сумма
представляет собой вычислительную
загрузку процессора
,
а сумма
- его коммуникационную загрузку. Отсюда
следует, что время параллельного решения
всей задачи равно
. (2)
Аналогично, время решения задачи на одном процессоре равно
. (3)
2.3. Статическая балансировка загрузки
методом равномерной декомпозиции
расчетных узлов. Положим, что из числаузлов расчетной сетки
множеству
принадлежит
узлов
.
Обозначим
.
Тогда идею рассматриваемого метода
балансировки загрузки можно представить
в следующем виде (рис. 2):
среди всех узлов
сетки
выделяем
узлов
;
разбиваем узлы
на
множеств
,
, где множество
содержит узлы
, множество
- узлы
и т.д.
назначаем для обработки процессору
множеств узлов
,
.
Очевидно, что если величина
не кратна количеству процессоров
,
то количество узлов во множествах
,
,
,
может отличаться (не более чем на
единицу). Для простоты записи пренебрежем
этим обстоятельством.
Рис. 2. К балансировке загрузки методом 2.
Назовем рассматриваемый метод
балансировки методом равномерной
декомпозиции расчетных узлов. Отметим,
что в этом случае естественна
централизованная генерация расчетной
сетки
(наhost-процессоре).
Схему параллельных вычислений при балансировке загрузки методом равномерной декомпозиции расчетных узлов можно представить в следующем виде.
Шаг 1. Host-процессор выполняет следующие действия:
строит сетку
;
среди всех узлов
сетки
выделяет
узлов
;
разбивает узлы
на
множеств узлов
;
посылает процессору
координаты узлов множества
.
Шаг 2. Процессорвыполняет следующие действия:
принимает от host-процессора координаты
узлов множества
;
вычисляет в каждом из этих узлов значение вектор-функции
;
передает host-процессору
вычисленных векторов и заканчивает вычисления.
Шаг 3. Host-процессор выполняет следующие действия:
принимает от процессоров
,
вычисленные ими значения вектор-функции
;
на основе
полученных значений вектор-функции
вычисляет приближенное значение функционала
.
Обозначим
,
,
- узлы сетки
,
принадлежащие множеству
.
Тогда при балансировке загрузки методом
равномерной декомпозиции расчетных
узлов время решения задачи на процессоре
можно оценить величиной
, (4)
где слагаемое
представляет собой вычислительную
загрузку процессора
,
а слагаемые
- его коммуникационную загрузку. Таким
образом, время параллельного решения
всей задачи оценивается величиной
. (5)
Заметим, что вычислительная загрузка
процессора
в данном случае не включает в себя
определение принадлежности узлов сетки
множеству
- эта работа выполняетсяhost-процессором.
Как и при использовании балансировки загрузки методом равномерной декомпозиции параллелепипеда П, в данном случае время решения задачи на одном процессоре определяется формулой (3).