- •Самарский государственный технический университет филиал в г. Сызрани
- •Содержание
- •Введение
- •Граф "операции-операнды"…
- •Граф "операции-операнды"…
- •Граф "операции-операнды"…
- •Граф "операции-операнды"
- •Схема параллельного выполнения алгоритма
- •Определение времени выполнения параллельного алгоритма…
- •Определение времени выполнения параллельного алгоритма…
- •Определение времени выполнения параллельного алгоритма…
- •Определение времени выполнения параллельного алгоритма…
- •Определение времени выполнения параллельного алгоритма…
- •Определение времени выполнения параллельного алгоритма…
- •Определение времени выполнения параллельного алгоритма…
- •Определение времени выполнения параллельного алгоритма…
- •Определение времени выполнения параллельного алгоритма…
- •Показатели эффективности параллельного алгоритма…
- •Показатели эффективности параллельного алгоритма…
- •Показатели эффективности параллельного алгоритма…
- •Показатели эффективности параллельного алгоритма…
- •Пример: Вычисление частных сумм…
- •Пример: Вычисление частных сумм…
- •Пример: Вычисление частных сумм…
- •Пример: Вычисление частных сумм…
- •Пример: Вычисление частных сумм…
- •Пример: Вычисление частных сумм…
- •Пример: Вычисление частных сумм…
- •Пример: Вычисление частных сумм…
- •Пример: Вычисление частных сумм…
- •Пример: Вычисление частных сумм…
- •Пример: Вычисление частных сумм…
- •Пример: Вычисление частных сумм
- •Оценка максимально достижимого параллелизма…
- •Оценка максимально достижимого параллелизма…
- •Оценка максимально достижимого параллелизма…
- •Оценка максимально достижимого параллелизма…
- •Оценка максимально достижимого параллелизма
- •Анализ масштабируемости параллельных
- •Анализ масштабируемости параллельных вычислений…
- •Анализ масштабируемости параллельных вычислений…
- •Анализ масштабируемости параллельных вычислений
- •Пример: Вычисление числа …
- •Пример: Вычисление числа …
- •Пример: Вычисление числа …
- •Пример: Вычисление числа
- •Пример: Метод конечных разностей…
- •Пример: Метод конечных разностей…
- •Пример: Метод конечных разностей
- •Заключение…
- •Заключение
- •Вопросы для обсуждения…
- •Вопросы для обсуждения
- •Темы заданий для самостоятельной работы…
- •Темы заданий для самостоятельной работы
- •Литература…
- •Литература
- •Следующая тема
Показатели эффективности параллельного алгоритма…
Стоимость (cost) вычислений
Cp pTp
Стоимостно-оптимальный (cost-optimal) параллельный алгоритм - метод, стоимость которого является пропорциональной времени выполнения наилучшего последовательного алгоритма.
21 из 58
Пример: Вычисление частных сумм…
Задача нахождения частных сумм последовательности числовых значений
(prefix sum problem):
k
Sk xi ,1 k n
i 1
Задача вычисления общей суммы имеющегося набора значений:
n
S xi
i 1
22 из 58
Пример: Вычисление частных сумм…
Последовательный алгоритм суммирования элементов числового вектора
n |
|
S xi , |
G1 (V1, R1 ) |
i 1 |
|
Данный "стандартный" алгоритм суммирования допускает только строго последовательное исполнение и не может быть распараллелен
23 из 58
Пример: Вычисление частных сумм…
Каскадная схема суммирования
G2 (V2 , R2 )
–V2 = { (vi1,…,vili), 0≤i≤k, 1≤li≤2-in } есть вершины графа,
–(v01,…, v0n) есть операции ввода,
–(v11,…,v1n/2) есть операции первой итерации и т.д.,
–R2 = { (vi-1,2j-1vij),(vi-1,2jvij), 1≤i≤k, 1≤li≤2-in } есть множество дуг графа.
24 из 58
Пример: Вычисление частных сумм…
Количество итераций каскадной схемы суммирования:
klog2 n
Общее количество операций суммирования:
Kпосл n / 2 n / 4 ... 1 n 1
При параллельном исполнении отдельных итераций каскадной схемы общее количество параллельных операций суммирования является равным:
Kпар log2 n
25 из 58
Пример: Вычисление частных сумм…
Показатели ускорения и эффективности каскадной схемы алгоритма суммирования:
S p T1Tp (n 1) / log2 n,
Ep T1 pTp (n 1)( p log2 n) (n 1)((n / 2) log2 n),
где p=n/2 есть необходимое для выполнения каскадной схемы количество процессоров.
–время параллельного выполнения каскадной схемы совпадает с оценкой для паракомпьютера (теорема 2),
–эффективность использования процессоров уменьшается при увеличении количества суммируемых значений:
|
lim Ep 0 при |
n |
|
|
|
|
|
Н.Новгород, 2005 г. |
Основы параллельных вычислений: Моделирование и анализ параллельных |
26 из 60 |
|
|
|
вычислений |
|
© Гергель В.П.
Пример: Вычисление частных сумм…
Модифицированная каскадная схема:
–Все суммируемые значения подразделяются на (n/log2n) групп, в каждой из которых содержится (log2n) элементов; для каждой группы вычисляется сумма значений при помощи последовательного алгоритма суммирования;
–На втором этапе для полученных (n/log2n) сумм отдельных групп применяется обычная каскадная схема:
27 из 58
Пример: Вычисление частных сумм…
Для выполнения первого этапа требуется (log2n)
выполнение параллельных операций при использовании p= (n/log2n) процессоров
Для выполнения второго этапа необходимо log2(n/log2n)≤log2n параллельных операций для p=(n/log2n)/2
процессоров
Время выполнения параллельного алгоритма составляет
TP 2 log2 n
для p= (n/log2n) процессоров.
28 из 58
Пример: Вычисление частных сумм…
С учетом полученных оценок показатели ускорения и эффективности модифицированной каскадной схемы определяются соотношениями:
S p T1Tp (n 1)2 log2 n,
Ep T1 pTp (n 1)(2(n / log2 n) log2 n) (n 1)2n
–По сравнению с обычной каскадной схемой ускорение уменьшилось в 2 раза,
–Для эффективности нового метода суммирования можно получить асимптотически ненулевую оценку снизу:
Ep (n 1) / 2n 0.25, lim Ep 0.5 при n .
–Модифицированный каскадный алгоритм является стоимостно- оптимальным (стоимость вычислений пропорциональна времени выполнения последовательного алгоритма):
C p pTp (n / log 2 n)(2 log 2 n) 2n
29 из 58
Пример: Вычисление частных сумм…
Вычисление всех частных сумм…
–Вычисление всех частных сумм на скалярном компьютере может быть получено при помощи обычного последовательного алгоритма суммирования при том же количестве операций
T1 n
–При параллельном исполнении применение каскадной схемы в явном виде не приводит к желаемым результатам.
Достижение эффективного распараллеливания требует привлечения новых подходов (может быть, даже не имеющих аналогов при последовательном программировании) для разработки новых параллельно-ориентированных алгоритмов решения задач
30 из 58