- •Лекция 8. Оценка параллельных алгоритмов
- •8.1. Ярусно-параллельная форма алгоритма
- •8.2. Описание параллельного выполнения алгоритма
- •8.3. Показатели эффективности параллельного алгоритма
- •8.4 Закон Амдаля –формальная модель ускорения кластера
- •8.5 Уточнение закона Амдаля – типичная форма ускорения кластера
Лекция 8. Оценка параллельных алгоритмов
8.1. Ярусно-параллельная форма алгоритма
При разработке параллельных алгоритмов решения задач вычислительной математики принципиальным моментом является анализ эффективности использования параллелизма, состоящий обычно в оценке получаемого ускорения процесса вычисления (сокращения времени решения задачи).
Для упрощения оценки алгоритмов вводится ряд допущений:
параллельная вычислительная система, на которой будет выполняться алгоритм, состоит из любого нужного числа процессоров и произвольно большой памяти, одновременно доступной всем процессорам.
каждый процессор за единицу времени может выполнить любую унарную или бинарную операцию.
время выполнения всех вспомогательных операций, а также время взаимодействия с памятью и время, затрачиваемое на управление процессом, считаются пренебрежимо малыми.
все входные данные перед началом вычислений записаны в памяти. Каждый процессор считывает свои операнды из памяти и после выполнения операции записывает результат в память.
после окончания вычислительного процесса все результаты остаются в памяти.
все процессоры и устройство памяти объединяются в единую систему, связанную каналами передачи информации.
Для описания существующих информационных зависимостей в выбираемых алгоритмах решения задач может быть использована модель в виде графа алгоритмов.
Представим множество операций, выполняемых в исследуемом алгоритме решения вычислительной задачи, и существующие между операциями информационные зависимости в виде ациклического ориентированного графа
G = (V, R) , где
где V = {1, …, |V|} есть множество вершин графа, представляющее выполняемые операции алгоритма, а R есть множество дуг графа (при этом дуга r = (i, j) принадлежит графу только, если операция j использует результат выполнения операции i).
Ярусно-параллельная форма графа(ЯПФ) — деление вершин графа алгоритма
на пронумерованное подмножествоViтакое, что, если дугаrидет от вершины
к
вершине
,
то обязательноj<k.
Каждое из множеств ViназываетсяярусомЯПФ,i— егономером, количество вершин в ярусе — егошириной. Количество ярусов в ЯПФ называется еёвысотой, а максимальная ширина её ярусов —шириной ЯПФ.
Для ЯПФ графа алгоритма важным является тот факт, что операции, которым соответствуют вершины одного яруса, не зависят друг от друга, и поэтому заведомо существует параллельная реализация алгоритма, в которой они могут быть выполнены параллельно на разных устройствах вычислительной системы. Поэтому ЯПФ графа алгоритма может быть использована для подготовки такой параллельной реализации алгоритма.
Минимальной высотой всех возможных ЯПФ графа является его критический путь. Построение ЯПФ с высотой, меньшей критического пути, невозможно.
Критичиский путь – это самый длинный путь в графе.
Для примера на рисунке показан граф алгоритма вычисления площади прямоугольника, заданного координатами двух углов.

Рис. 8.1. Пример вычислительной модели алгоритма в виде графа "операции-операнды"
В рассматриваемой вычислительной модели
алгоритма вершины без входных дуг могут
использоваться для задания операций
ввода, а вершины без выходных дуг – для
операций вывода. Обозначим через
множество
вершин графа без вершин ввода, а через
d(G) диаметр (длину максимального пути,
кратчайший путь) графа.
Операции алгоритма, между которыми нет пути в рамках выбранной схемы вычислений, могут быть выполнены параллельно.
Для вычислительной схемы на рисунке, например, параллельно могут быть выполнены сначала все операции умножения, а затем первые две операции вычитания.
Для выполнения выбранного алгоритма решения задачи могут быть использованы разные схемы вычислений и построены соответственно разные вычислительные модели. Разные схемы вычислений обладают разными возможностями для распараллеливания и, тем самым, при построении модели вычислений может быть поставлена задача выбора наиболее подходящей для параллельного исполнения вычислительной схемы алгоритма.
Например, рассмотрим выражение E = (x + (a * ((b / c) * d))) - (y - z) (Рис.8.2а.) Дерево вычислений одного из возможных эквивалентных для E выражений: Ep = ((a * b) / (c / d)) - ((y - z) - x) (Рис.8.2б.).

Рисунок 8.2
Характеристики сложности (Рис.8.2а., Рис.8.2б.):
|
для выражения E: |
для выражения Ep: |
|
t = 5 |
tр = 3 |
|
p = 2 |
pр = 3 |
|
w = 6 |
wр = 6 |
время t- число ярусов (высота) дерева вычислений,
число операций w- общее число операций АВ,
операции, лежащие на одном ярусе- ширина яруса,
требуемое число вычислителей p (или процессоров)- максимальная ширина яруса дерева вычислений.
