Разделы презентаций


Характеристики параллельных алгоритмов

Содержание

ПланРаспараллеливаниеХарактеристики алгоритмовОсновные теоремы Факторы снижения эффективности распареллеливания

Слайды и текст этой презентации

Слайд 1Характеристики параллельных алгоритмов
Судаков А.А.
“Параллельные и распределенные вычисления” Лекция 13

Характеристики параллельных алгоритмовСудаков А.А.“Параллельные и распределенные вычисления” Лекция 13

Слайд 2План
Распараллеливание
Характеристики алгоритмов
Основные теоремы
Факторы снижения эффективности распареллеливания


ПланРаспараллеливаниеХарактеристики алгоритмовОсновные теоремы Факторы снижения эффективности распареллеливания

Слайд 3Алгоритмы
Алгоритм – набор действий, которые необходимо выполнить для решения задачи
Последовательный

алгоритм – решение задачи на одном процессоре
Параллельный алгоритм – решение

задачи на одновременно работающих процессорах
Распараллеливание – какие операции должен выполнить каждый процессор параллельной системы
АлгоритмыАлгоритм – набор действий, которые необходимо выполнить для решения задачиПоследовательный алгоритм – решение задачи на одном процессореПараллельный

Слайд 4Декомпозиция, Связь, Синхронизация
Декомпозиция – разбиение задачи на составные части
Декомпозиция данных
Декомпозиция

функций
Комбинированная декомпозиция
Связь – взаимодействия между составными частями задачи
Синхронизация – обеспечение

того, что в некоторый момент все процессоры находятся в строго определенном состоянии
Декомпозиция, Связь, СинхронизацияДекомпозиция – разбиение задачи на составные частиДекомпозиция данныхДекомпозиция функцийКомбинированная декомпозицияСвязь – взаимодействия между составными частями

Слайд 5Эффективность распараллеливания
Единственная цель распараллеливания – уменьшение времени вычислений
Не все задачи

одинаково эффективно распараллеливаются
Задачи теоретического анализа
найти оптимальный метод распараллеливания для

данного алгоритма
Определить насколько та или иная схема эффективна

Эффективность распараллеливанияЕдинственная цель распараллеливания – уменьшение времени вычисленийНе все задачи одинаково эффективно распараллеливаютсяЗадачи теоретического анализа найти оптимальный

Слайд 6Модель
Система с p процессорами
Процессоры могут взаимодействовать между собой
В модели с

общей памятью
каждый процессор может обращаться независимо к каждой ячейке

памяти
При обращении к одной и той же ячейке на запись могут возникать конфликты
В модели с распределенной памятью
Каждые 2 процессора могут взаимодействовать между собой

CPU1

CPU2

CPU3

CPUp

коммутатор

CPU1

CPU2

CPU3

CPUp

память

МодельСистема с p процессорамиПроцессоры могут взаимодействовать между собойВ модели с общей памятью каждый процессор может обращаться независимо

Слайд 7Характеристики алгоритмов
Время вычисления на одном процессоре
Время вычисления на p

процессорах
Количество операций последовательного алгоритма N1
Количество операций параллельного алгоритма Np
Время

выполнения одной арифметической операции
Характеристики алгоритмовВремя вычисления на одном процессоре Время вычисления на p процессорах Количество операций последовательного алгоритма N1Количество операций

Слайд 8Характеристики эффективности распараллеливания
Коэффициент ускорения
Во сколько раз время параллельный алгоритм быстрее
Идеальное

ускорение
Идеальное ускорение = количеству процессоров
Коэффициент эффективности
Отношение полученного ускорения

к идеальному
Какой процент процессоров работает
Коэффициент избыточности
Параллельный алгоритм может потребовать дополнительных операций
Качество распараллеливания
Произведение всех коэффициентов



Характеристики эффективности распараллеливанияКоэффициент ускоренияВо сколько раз время параллельный алгоритм быстрееИдеальное ускорение Идеальное ускорение = количеству процессоров Коэффициент

Слайд 9Характеристики системы обмена информацией
Время передачи единицы информации
Время начальной задержки
Латентность
Время

установления связи
Отношение между временем обработки и временем передачи единицы информации
Отношение

между временем обработки единицы информации и временем установления связи
Характеристики системы обмена информациейВремя передачи единицы информации Время начальной задержкиЛатентностьВремя установления связиОтношение между временем обработки и временем

Слайд 10Масштабируемость (количество операций алгоритма)‏
Программы (алгоритмы) работают со входными данными
Чем больше

данных, тем дольше они будут обрабатываться
Масштабируемость – во сколько раз

возрастет время выполнения алгоритма при увеличении количества данных
Масштабируемость (количество операций алгоритма)‏Программы (алгоритмы) работают со входными даннымиЧем больше данных, тем дольше они будут обрабатыватьсяМасштабируемость –

Слайд 11Характеристики масштабируемости
Характерная размерность задачи
Количество входных данных
Количество операций алгоритма
Нотация большого O
Как

ведет себя количество N(n) при стремлении объема входных данных к

бесконечности

n

N(n)‏

O(n)‏

Характеристики масштабируемостиХарактерная размерность задачиКоличество входных данныхКоличество операций алгоритмаНотация большого OКак ведет себя количество N(n) при стремлении объема

Слайд 12Примеры характерных размерностей
Количество элементов массива n
Размер квадратной матрицы nxn


Примеры характерных размерностейКоличество элементов массива nРазмер квадратной матрицы nxn

Слайд 13Примеры масштабируемости

Примеры масштабируемости

Слайд 14Другие характеристики
Производительность системы
Цена алгоритма
Суммарные затраты процессорного времени

Другие характеристикиПроизводительность системыЦена алгоритмаСуммарные затраты процессорного времени

Слайд 15Основные свойства параллельных алгоритмов
На сколько вообще можно ускорить вычисления за

счет параллельной обработки?
Какое оптимальное количество процессоров ?

Основные свойства параллельных алгоритмовНа сколько вообще можно ускорить вычисления за счет параллельной обработки?Какое оптимальное количество процессоров ?…

Слайд 16Граф операций
Граф операции-аргументы
Вершины графа – выполняемые операции
Дуги – какие результаты

предыдущих операций используются на следующем этапе
Результаты операций соответствуют вершинам





*
*
*
*
+
+
+
(a+b)(c+d)‏
a
b
c
d
ac
ad
cb
bd
ac+ad
cb+bd
ac+ad+cb+bd

Граф операцийГраф операции-аргументыВершины графа – выполняемые операцииДуги – какие результаты предыдущих операций используются на следующем этапеРезультаты операций

Слайд 17Постановка задачи в терминах графа
Последовательности операций соответствует путь на

графе
Параллельно могут быть выполнены те операции, между которыми нет пути

на графе
Каждой схеме распараллеливания на p процессоров соответствует расписание:
Для операции i
Выбирается процессор Pi
В момент времени ti
Задача: Найти оптимальное расписание для распараллеливания
Постановка задачи в терминах графа Последовательности операций соответствует путь на графеПараллельно могут быть выполнены те операции, между

Слайд 18Пример расписания (общая память)‏
Момент времени 1
H=(операция 1:загрузить а, процессор 1,

момент1 )‏
H=(операция 2:загрузить b, процессор 2, момент1 )‏
H=(операция 3:загрузить c,

процессор 3, момент1 )‏
H=(операция 4:загрузить d, процессор 4, момент1 )‏
Момент времени 2
H=(операция 5: а*с, процессор 1, момент2 )‏
H=(операция 6: а*b, процессор 2, момент2 )‏
H=(операция 7: c*d, процессор 3, момент2 )‏
H=(операция 8: b*d, процессор 4, момент2 )‏
Момент времени 3
H=(операция 9: а*с+b*d, процессор 2, момент3 )‏
H=(операция 10: a*d+b*c, процессор 3, момент3 )‏
Момент времени 4
H=(операция 11: а*с+b*d+ a*d+b*c, процессор 3, момент4 )‏

Пример расписания (общая память)‏Момент времени 1H=(операция 1:загрузить а, процессор 1, момент1 )‏H=(операция 2:загрузить b, процессор 2, момент1

Слайд 19Ограничения на расписание
В один и тот же момент времени один

процессор не может выполнять разные операции
Если для выполнения следующей операции

должен быть готов результат предыдущей
Момент выполнения следующей операции должен быть больше момента выполнения предыдущей операции
Ограничения на расписаниеВ один и тот же момент времени один процессор не может выполнять разные операцииЕсли для

Слайд 20Определение времени выполнения параллельного алгоритма
Время выполнения соответствует максимально длинному пути

графа
Соответствует максимально возможному моменту времени, когда была назначена операция +

время выполнения операции
Для практики интересно
минимальное время при данной схеме вычислений
Минимальное время для всех схем вычислений
Минимально возможное время при неограниченном количестве процессоров
Определение времени выполнения параллельного алгоритмаВремя выполнения соответствует максимально длинному пути графаСоответствует максимально возможному моменту времени, когда была

Слайд 21Некоторые свойства параллельных алгоритмов
Минимальное время выполнения параллельного алгоритма соответствует максимальной

длине пути (диаметру) графа
Для любого количества процессоров справедлива оценка времени

выполнения
Некоторые свойства параллельных алгоритмовМинимальное время выполнения параллельного алгоритма соответствует максимальной длине пути (диаметру) графаДля любого количества процессоров

Слайд 22Доказательство 2
Пусть есть расписание для получения минимально возможного времени
пусть оно

соответствует P процессорам
Пусть оно требует времени T∞
Пусть каждый последовательный шаг

этого расписания начинается в момент времени ti и всего шагов N∞
Пусть на каждом шаге выполняется ni операций
Общее время выполнения равно
Доказательство 2Пусть есть расписание для получения минимально возможного временипусть оно соответствует P процессорамПусть оно требует времени T∞Пусть

Слайд 23Доказательство 2 (продолжение)‏
Рассмотрим, что будет если при выполнении того же

расписания у нас число процессоров равно p и не равно

оптимальному числу P
Тогда время выполнения нашего расписания либо возрастет (если p < P) либо останется неизменным (если p >= P)‏
Будем следовать нашему расписанию, но с меньшим количеством процессоров
На i-м шаге нам нужно выполнить ni операций
Каждому процессору необходимо выполнить последовательность операций на i-м шаге

Если p < P


p >= P 1

Доказательство 2 (продолжение)‏Рассмотрим, что будет если при выполнении того же расписания у нас число процессоров равно p

Слайд 24Доказательство 2 (продолжение)‏
Время выполнения алгоритма на p процессорах на i-м

шаге

Оценим время выполнения всего алгоритма на p процессорах сверху
Доказано

Доказательство 2 (продолжение)‏Время выполнения алгоритма на p процессорах на i-м шагеОценим время выполнения всего алгоритма на p

Слайд 25Другие свойства
Можно показать, что максимально возможное ускорение при неизменном количестве

операций равно количеству процессоров
Если количество процессоров равно T1/T∞ то время

выполнения параллельного алгоритма не будет больше чем в 2 раза превышать оптимальное время выполнения при оптимальном расписании

Другие свойстваМожно показать, что максимально возможное ускорение при неизменном количестве операций равно количеству процессоровЕсли количество процессоров равно

Слайд 26Использование описания с помощью графов
Вычислительную схему необходимо выбирать с графом

минимального диаметра (минимальное время наиболее длинной последовательной операции)‏
Оценочное оптимальное количество

процессоров определяется величиной
Максимальное время выполнения можно оценить
Удобно использовать для формальной оценки эффективности известных вычислительных схем
Использование описания с помощью графовВычислительную схему необходимо выбирать с графом минимального диаметра (минимальное время наиболее длинной последовательной

Слайд 27Факторы ограничения и повышения производительности
Гипотеза Минского – принципиальная непараллельность алгоритма


Закон Амдала – наличие принципиально последовательных участков
Закон Густафсона – линейное

ускорение
Гетерогенность – дисбаланс нагрузки
Сверхлинейное ускорение – аппаратное и алгоритмическое
Факторы ограничения и повышения производительностиГипотеза Минского – принципиальная непараллельность алгоритма Закон Амдала – наличие принципиально последовательных участковЗакон

Слайд 28Гипотеза Минского
Пусть программа имеет p последовательных участков
Пусть переход на тот

или другой участок выполняется путем бинарного ветвления
Всего выполнится участков программы
Если

всю программу выполнять на p процессорах, то ускорение будет не больше, чем
Для некоторых эффективных последовательных алгоритмов гипотеза справедлива








Гипотеза МинскогоПусть программа имеет p последовательных участковПусть переход на тот или другой участок выполняется путем бинарного ветвленияВсего

Слайд 29Закон Амдала (Amdahl, 1967)‏
Наличие последовательных участков приводит к существенному снижению

производительности
Пусть есть система из p процессоров
Пусть есть алгоритм, который состоит

из участков, которые выполняются параллельно и участков, которые выполняются последовательно
Пусть доля последовательных частей равна α
Тогда доля параллельных частей равна (1- α)‏
Закон Амдала (Amdahl, 1967)‏Наличие последовательных участков приводит к существенному снижению производительностиПусть есть система из p процессоровПусть есть

Слайд 30Иллюстрация закона Амдаля

Иллюстрация закона Амдаля

Слайд 31Оценка времени выполнения
Время выполнения последовательного алгоритма
Время выполнения последовательной части параллельного

алгоритма
Время выполнения параллельной части алгоритма на p процессорах
Время выполнения всего

параллельного алгоритма
Оценка времени выполненияВремя выполнения последовательного алгоритмаВремя выполнения последовательной части параллельного алгоритмаВремя выполнения параллельной части алгоритма на p

Слайд 32Коэффициент ускорения и эффективность
Ускорение

Эффективность

Время выполнения на паракомпьютере

Оптимальное количество процессоров

Коэффициент ускорения и эффективностьУскорениеЭффективностьВремя выполнения на паракомпьютереОптимальное количество процессоров

Слайд 33Графики зависимостей

Графики зависимостей

Слайд 34Примеры закона Амдала
Централизованная схема вычислений
Симметричная мультипроцессорная система
И другие суперкомпьютеры
Векторные, конвейерные

процессоры
Обмен данными

Примеры закона АмдалаЦентрализованная схема вычисленийСимметричная мультипроцессорная системаИ другие суперкомпьютерыВекторные, конвейерные процессорыОбмен данными

Слайд 35

Централизованная схема
Главный процессор раздает рабочим задачу
Рабочие выполняют задачу и возвращают

результат главному процессору
Главный процессор – узкое место – существенно последовательная

часть алгоритма
Главный процессор в один момент времени может обработать только данные с одного рабочего

Главный процессор
(master)‏

Рабочий
процессор

Рабочий
процессор

Централизованная схемаГлавный процессор раздает рабочим задачуРабочие выполняют задачу и возвращают результат главному процессоруГлавный процессор – узкое место

Слайд 36SMP система
Шина не может передавать данные от нескольких процессоров одновременно
Шина

– существенно последовательная часть

SMP системаШина не может передавать данные от нескольких процессоров одновременноШина – существенно последовательная часть

Слайд 37Конвейер
Пока конвейер не заполнен параллельной обработки нет
Заполнение конвейера – существенно

последовательная часть алгоритма
Prefetch
Декодирование
сложение
Сохранение

КонвейерПока конвейер не заполнен параллельной обработки нетЗаполнение конвейера – существенно последовательная часть алгоритмаPrefetchДекодированиесложениеСохранение

Слайд 38Закон Густафсона
Другая формулировка закона Амдала
Пусть параллельный алгоритм выполняется за

время Tp
Пусть β – доля существенно последовательных операций параллельного

алгоритма, тогда (1- β) – доля алгоритма, которая выполняется параллельно на p процессорах
Закон ГустафсонаДругая формулировка закона Амдала Пусть параллельный алгоритм выполняется за время Tp Пусть β – доля существенно

Слайд 39Оценка времени для закона Густафсона
Время параллельной обработки
Время последовательной обработки (параллельная

часть выполняется в p раз медленнее)‏
Ускорение
Получили линейную масштабируемость

Оценка времени для закона ГустафсонаВремя параллельной обработкиВремя последовательной обработки (параллельная часть выполняется в p раз медленнее)‏УскорениеПолучили линейную

Слайд 40Связь или противоречие?
Используются разные параметры
Амдал – доля последовательных операций

последовательного алгоритма
Густафсон – доля последовательных операций параллельного алгоритма
Связь между параметрами


Доля последовательных вычислений зависит от количества процессоров и объема данных с которыми работает алгоритм!
При увеличении количества данных, с которыми работает алгоритм часто количество операций распараллеливаемой части растет быстрее, чем количество операций последовательной части и в явном виде закон Густафсона более применим
Для быстрых алгоритмов с малым количеством операций в явном виде лучше подходит закон Амдала
Связь или противоречие?Используются разные параметры Амдал – доля последовательных операций последовательного алгоритмаГустафсон – доля последовательных операций параллельного

Слайд 41Практическое применение законов Амдала и Густафсона
При очень малом количестве

последовательных операций возможно очень большое ускорение при очень большом количестве

процессоров
При увеличении объемов данных с которыми работает алгоритм эффекимвность распараллеливания растет
Практическое применение законов Амдала и Густафсона При очень малом количестве последовательных операций возможно очень большое ускорение при

Слайд 42Гетерогенность
Гомогенная система – все процессоры одинаковы
Гетерогенная система – процессоры

разные
Большинство алгоритмов рассчитаны на гомогенную систему

Гетерогенность Гомогенная система – все процессоры одинаковыГетерогенная система – процессоры разныеБольшинство алгоритмов рассчитаны на гомогенную систему

Слайд 43Дисбаланс нагрузки
Если алгоритм, рассчитанный на гомогенную систему запустить на гетерогенной,

то
Более быстрые процессоры выполнят свою работу быстрее
Более медленные процессоры

будут работать дольше
Время выполнения такой параллельной программы будет определяться самым медленным процессором!!!
Эффективность распараллеливания падает – часть процессоров простаивает
Дисбаланс нагрузкиЕсли алгоритм, рассчитанный на гомогенную систему запустить на гетерогенной, то Более быстрые процессоры выполнят свою работу

Слайд 44Балансировка нагрузки
Для решения проблемы используют балансировку нагрузки
Статическая – на этапе

запуска задачи учитывается производительность и загруженность
Динамическая – балансировка выполняется в

процессе работы
Балансировка нагрузкиДля решения проблемы используют балансировку нагрузкиСтатическая – на этапе запуска задачи учитывается производительность и загруженностьДинамическая –

Слайд 45Сверхлинейное ускорение
Сверхлинейное ускорение – ускорение большее, чем количество процессоров
Согласно рассмотренной

теории – не возможно
Просто учли не все варианты
На практике встречается

!
Аппаратное сверхлинейное ускорение
Алгоритмическое сверхлинейное ускорение
Сверхлинейное ускорениеСверхлинейное ускорение – ускорение большее, чем количество процессоровСогласно рассмотренной теории – не возможноПросто учли не все

Слайд 46Аппаратное сверхлинейное ускорение
Возможно, если процессоры параллельной программы выполняют параллельный код

с большей производительностью, чем последовательный
Каждый процессор параллельной системы может
выполнять

больше последовательных однотипных операций
Работать с меньшими объемами данных (за счет декомпозиции)‏
Данные и код лучше размещаются в оперативной памяти
Увеличивается вероятность попадания данных и кода в кэш
Очень часто встречается на практике для математических задач!!!
Аппаратное сверхлинейное ускорениеВозможно, если процессоры параллельной программы выполняют параллельный код с большей производительностью, чем последовательныйКаждый процессор параллельной

Слайд 47Алгоритмическое сверхлинейное ускорение
Возможно, когда для выполнения параллельного алгоритма
Необходимо выполнить меньше

операций
Не все операции
Часто встречается в задачах поиска, подбора

Алгоритмическое сверхлинейное ускорениеВозможно, когда для выполнения параллельного алгоритмаНеобходимо выполнить меньше операцийНе все операцииЧасто встречается в задачах поиска,

Слайд 48Пример: подбор пароля
Пусть последовательный алгоритм поиска имеет p стадий
Стадия1: Перебор

географических названий
Стадия2: Перебор нецензурных слов
Стадия3: Перебор компьютерных терминов

Последовательный алгоритм выполняет

все стадии последовательно и в случае успеха останавливается
Пример: подбор пароляПусть последовательный алгоритм поиска имеет p стадийСтадия1: Перебор географических названийСтадия2: Перебор нецензурных словСтадия3: Перебор компьютерных

Слайд 49Параллельный алгоритм подбора
Каждый процессор выполняет свою стадию
Процессор1 : Стадия1
Процессор2: Стадия

2

Параллельный алгоритм подбораКаждый процессор выполняет свою стадиюПроцессор1 : Стадия1Процессор2: Стадия 2…

Слайд 50Иллюстрация
последовательный
параллельный

Иллюстрацияпоследовательныйпараллельный

Слайд 51Счастливый случай
Как правило пользователи выбирают пароли, чтобы лучше запоминались
Если на

какой-либо стадии поиска поиск выполняется в нужной категории, то скорее

всего пароль будет подобран быстро
Счастливый случайКак правило пользователи выбирают пароли, чтобы лучше запоминалисьЕсли на какой-либо стадии поиска поиск выполняется в нужной

Слайд 52Оценка времени последовательного алгоритма
Пусть последовательный алгоритм найдет результат в k-й

стадии через время Δt
Время выполнения одной стадии t
Время выполнения последовательного

алгоритма
Оценка времени последовательного алгоритмаПусть последовательный алгоритм найдет результат в k-й стадии через время ΔtВремя выполнения одной стадии

Слайд 53Оценка времени параллельного алгоритма
Процессор параллельной системы, который выполняет k-ю стадию

сразу найдет нужный результат за время Δt
Все остальные процессоры могут

прекратить работу

Оценка времени параллельного алгоритмаПроцессор параллельной системы, который выполняет k-ю стадию сразу найдет нужный результат за время ΔtВсе

Слайд 54Ускорение
Коэффициент ускорения
Сверхлиненейное ускорение возможно, когда ускорение больше p
Условие
Если успешный подбор

будет сразу же после начала стадии
На практике очень вероятно, учитывая,

как пользователи выбирают пароли
УскорениеКоэффициент ускоренияСверхлиненейное ускорение возможно, когда ускорение больше pУсловиеЕсли успешный подбор будет сразу же после начала стадииНа практике

Слайд 55Сравнение факторов ограничения производительности

Сравнение факторов ограничения производительности

Слайд 56Выводы
В большинстве случаев ускорение за счет распараллеливания не может быть

больше количества процессоров
Обычно ускорение значительно меньше количества процессоров
На практике встречаются

ситуации, когда возможно сверхлинейное или близкое к идеальному ускорение
При увеличении количества процессоров эффективность распараллеливания падает
Для каждой задачи существует свое оптимальное количество процессоров
При увеличении количества данных и количества операций алгоритма решения задачи, эффективность распараллеливания увеличивается
Если задача эффективно и быстро решается на однопроцессорной системе, то переход к многопроцессорному алгоритму обычно не значительно увеличивает эффективность
ВыводыВ большинстве случаев ускорение за счет распараллеливания не может быть больше количества процессоровОбычно ускорение значительно меньше количества

Слайд 57Вопросы

Вопросы

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика