
lec03_v2.pptx
- Количество слайдов: 32
Коммуникация в МВС Коммуникация между процессорами обеспечивает: взаимодействие, синхронизацию, взаимоисключения выполняемых процессов Коммуникационная «трудоемкость» алгоритма влияет на выбор способа решения задачи Примеры топологий сетей в МВС: граф, линейка, кольцо, звезда , решетка 1
Топология сети передачи данных 2
Характеристики топологий сети Диаметр – определяет время передачи данных, max расстояние между 2 CPU сети (расстояние равно величине кратчайшего пути). Связность – определяет наличие разных маршрутов передачи данных между CPU, min число дуг графа, которые надо удалить для получения 2 несвязных областей. Ширина бисекции – связность, но 2 области д. б. одинакового размера Стоимость – общее число линий передачи данных в МВС 3
Пример графа коммуникационной сети • Расстоянием между узлами коммуникационной сети • R(P 2, P 6) = 2 • Диаметр = 3 • т. к. R(P 1, P 6) = 3 • Связность = 2 4
Характеристики топологий (р – количество процессоров) Топология Ширина бисекции Связность Стоимость Граф Звезда Линейка Кольцо Решетка (2 D) 5 Диаметр 1 2 р-1 р/2 2(√р - 1) р2/4 1 1 2 √р р-1 1 1 2 2 р(р - 1)/2 р-1 р 2(р - √р)
Производительность коммуникационной сети латентность коммуникационной сети – время подготовки к передаче информации по каналу сети пропускная способность коммуникационной сети - скорость передачи информации по каналам сети или, более строго, количество информации, передаваемой между узлами сети в единицу времени «точка-точка» двунаправленная пересылка 6
Зачем нужны модели и их анализ? Для разработки эффективных параллельных алгоритмов оценивают эффективность использования параллелизма: эффективность распараллеливания конкретных выбранных методов выполнения вычислений, максимально возможное ускорение процесса решения задачи (анализируются все возможные способы выполнения вычислений). Для этого нужны формальные модели вычислений 8
Модель вычислений Граф «операции – операнды» описывает алгоритм вычислений на уровне операций и информационных зависимостей. Предположения: Время выполнения всех вычислительных операций = const = 1. Передача данных между CPU выполняется мгновенно Не учитывается коммуникационная трудоемкость алгоритмов 9
Определение графа О-О G = (V , R) – ациклический ориентированный граф V – множество вершин графа, представляющих выполняемые операции алгоритма. R – множество дуг графа. Дуга r(i, j) принадлежит графу только если операция j использует результат выполнения операции i Вершины без входных дуг могут использоваться для задания операций ввода Вершины без выходных дуг – для операций вывода. 10
Пример модели вычислений (S прямоугольника) 11
Комментарии Можно выбрать иную схему вычислений и построить другую модель. Операции, между которыми нет пути, можно выполнить параллельно (сначала все «*» , потом «-» ) 12
Схема параллельного выполнения алгоритма 13
Время выполнения параллельного алгоритма 14
Время выполнения параллельного алгоритма 15
Время выполнения параллельного алгоритма 16
Время выполнения параллельного алгоритма 17
Время выполнения параллельного алгоритма 18
Время выполнения параллельного алгоритма 19
Время выполнения параллельного алгоритма. Рекомендации 20
Показатели эффективности параллельного алгоритма для типовых задач 21
Показатели эффективности параллельного алгоритма для типовых задач 22
Показатели эффективности параллельного алгоритма для типовых задач 23
Алгоритмы вычисления сумм • Задача нахождения частных сумм последовательности числовых значений • Задача нахождения общей суммы последовательности числовых значений 24
Последовательный алгоритм S=0; S+=x 1; … Возможно только последовательное выполнение 25
Каскадная схема Возможно распараллеливание суммирования 26
Оценка эффективности Количество итераций (уровней) каскадной схемы: k = log 2 n Общее количество операций суммирования без распараллеливания (равно кол-ву для последовательной схемы): Kпосл = n/2 + n/4 + …+ 1 = n - 1 Общее количество операций суммирования с распараллеливанием (равно кол-ву итераций): Kпар = log 2 n 27
Оценка эффективности Время выполнения на 1 процессоре (=кол-ву операций): Т 1 = Kпосл Время выполнения на р процессорах (=кол-ву параллельных операций): Тр = Kпар Ускорение: a(p) = Т 1 /Тр = (n – 1)/log 2 n Эффективность: E(p) = a(p)/p = (n – 1)/plog 2 n Для реализации вычислительной схемы необходимо n/2 процессоров E(p) = a(p)/p = (n – 1)/((n/2)log 2 n) lim E(p) = 0 при р → ∞ 28
Модификация каскадной схемы Цель – асимптотически ненулевая эффективность. Суть алгоритма: все суммируемые значения подразделяются на (n/log 2 n) групп, в каждой из которых содержится (log 2 n) элементов; для каждой группы вычисляется (параллельно) сумма значений при помощи последовательного алгоритма суммирования; для полученных (n/log 2 n) сумм отдельных групп применяется обычная каскадная схема. 29
Модифицированная каскадная схема 30
Оценка эффективности Для этапа 1 число параллельных операций = log 2 n необходимое число процессоров р1= n/log 2 n Для этапа 2 число параллельных операций = log 2(n/log 2 n) ≤ log 2 n необходимое число процессоров р2= (n/log 2 n)/2 Время выполнения на р = р1 процессорах: Тр ≤ 2 log 2 n Ускорение (меньше в 2 раза): a(p) = Т 1 /Тр = (n – 1)/2 log 2 n Эффективность (асимптотически ненулевая): E(p) = a(p)/p = (n – 1)/2 plog 2 n = (n – 1)/2 n lim E(p) = 0. 5 при р → ∞ 31
Выводы Неочевидность приемов распараллеливания Неочевидность оценок эффективности Возможны разные варианты параллельных схем Наглядность модели на графах 32
Задания к зачету Разработать модель, оценить ускорение и эффективность параллельных вычислений для задач: Скалярное произведение 2 векторов. Среднее значение элементов массива. Max элементов массива. Произведение матрицы на вектор. 33
lec03_v2.pptx