Upload
yandex
View
5.563
Download
5
Embed Size (px)
DESCRIPTION
О.В.Сухорослов "Паралленльные вычисления", 02.03.2012, место показа МФТИ, Школа анализа данных (ШАД)
Citation preview
03 Параллельные вычисления
О.В. Сухорослов
02.03.2011
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 1 / 89
План лекции
ВведениеПараллельные вычислительные системыТеоретические основы параллельных вычисленийПринципы разработки параллельных алгоритмов
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 2 / 89
Параллельные вычисления
Использование нескольких процессоров дляРешения задачи за меньшее времяРешения бОльших задач, чем на одном процессоре
Создание параллельного алгоритмаПоиск параллелизма в последовательном алгоритме,модификация или создание нового алгоритмаДекомпозиция задачи на подзадачи,которые могут выполняться одновременноОпределение подзадач и зависимостей между ними
Реализация параллельной программыРаспределение подзадач между процессорамиОрганизация взаимодействия процессовУчет архитектуры целевой параллельной системыЗапуск, измерение и анализ показателей эффективности
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 3 / 89
Параллельные вычисления
Использование нескольких процессоров дляРешения задачи за меньшее времяРешения бОльших задач, чем на одном процессоре
Создание параллельного алгоритмаПоиск параллелизма в последовательном алгоритме,модификация или создание нового алгоритмаДекомпозиция задачи на подзадачи,которые могут выполняться одновременноОпределение подзадач и зависимостей между ними
Реализация параллельной программыРаспределение подзадач между процессорамиОрганизация взаимодействия процессовУчет архитектуры целевой параллельной системыЗапуск, измерение и анализ показателей эффективности
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 3 / 89
Параллельные вычисления
Использование нескольких процессоров дляРешения задачи за меньшее времяРешения бОльших задач, чем на одном процессоре
Создание параллельного алгоритмаПоиск параллелизма в последовательном алгоритме,модификация или создание нового алгоритмаДекомпозиция задачи на подзадачи,которые могут выполняться одновременноОпределение подзадач и зависимостей между ними
Реализация параллельной программыРаспределение подзадач между процессорамиОрганизация взаимодействия процессовУчет архитектуры целевой параллельной системыЗапуск, измерение и анализ показателей эффективности
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 3 / 89
Многопроцессность (concurrency)
В операционных системах, серверах, GUI...Данность: много разных процессов, асинхронностьБезопасное разделение и оптимальное использование ресурсовмежду многими процессамиАкцент на пропускной способности и времени отклика
В параллельных вычисленияхПроцессы надо найти внутри алгоритма, параллелизмИзоляция процессов друг от друга не так важнаМинимизация времени выполнения одной программы
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 4 / 89
Многопроцессность (concurrency)
В операционных системах, серверах, GUI...Данность: много разных процессов, асинхронностьБезопасное разделение и оптимальное использование ресурсовмежду многими процессамиАкцент на пропускной способности и времени отклика
В параллельных вычисленияхПроцессы надо найти внутри алгоритма, параллелизмИзоляция процессов друг от друга не так важнаМинимизация времени выполнения одной программы
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 4 / 89
Режимы выполнения параллельной программы
Многозадачный режимРежим разделения времениАктивен только один процесс
Параллельное выполнениеМногопроцессорная системаКонвейерные и векторные устройства
Распределенные вычисленияНесколько независимых машинВлияние сети на скорость обмена данными
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 5 / 89
Режимы выполнения параллельной программы
Многозадачный режимРежим разделения времениАктивен только один процесс
Параллельное выполнениеМногопроцессорная системаКонвейерные и векторные устройства
Распределенные вычисленияНесколько независимых машинВлияние сети на скорость обмена данными
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 5 / 89
Режимы выполнения параллельной программы
Многозадачный режимРежим разделения времениАктивен только один процесс
Параллельное выполнениеМногопроцессорная системаКонвейерные и векторные устройства
Распределенные вычисленияНесколько независимых машинВлияние сети на скорость обмена данными
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 5 / 89
Параллельные вычислительные системы
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 6 / 89
Классификация вычислительных систем (Flynn)
Singe Instruction,Single Data
(SISD)
Multiple Instruction,Single Data
(MISD)
Singe Instruction,Multiple Data
(SIMD)
Multiple Instruction,Multiple Data
(MIMD)
Поток командП
ото
к д
анн
ых
одиночный множественныйо
ди
но
чн
ый
мн
ож
еств
енн
ый
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 7 / 89
Детализация категории MIMD
Системы с общей разделяемой памятью (мультипроцессоры)Системы с распределенной памятью (мультикомпьютеры)Гибридные системы
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 8 / 89
Общая разделяемая память
Однородный доступ к памяти (UMA)Симметричные мультипроцессоры (SMP)
Неоднородный доступ к памяти (NUMA)
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 9 / 89
Общая разделяемая память
ПреимуществаПривычная модель программированияВысокая скорость обмена данными
ПроблемыСинхронизация при доступе к общим даннымКогерентность кэшей, ложное разделениеМасштабируемостьЭффективное использование памяти в NUMA
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 10 / 89
Общая разделяемая память
ПреимуществаПривычная модель программированияВысокая скорость обмена данными
ПроблемыСинхронизация при доступе к общим даннымКогерентность кэшей, ложное разделениеМасштабируемостьЭффективное использование памяти в NUMA
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 10 / 89
Распределенная память
Процессоры (Cell)Массивно-параллельные системы (MPP)КластерыNetwork of workstations (NOW)Grid
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 11 / 89
Распределенная память
ПреимуществаНизкая стоимостьВысокая масштабируемостьМеньше проблем с синхронизациейДекомпозиция на крупные подзадачи
ПроблемыНеобходимость использования сообщенийВысокие временные задержки и низкая пропускная способность=> ограниченный круг задач, оптимизация распределения данныхи взаимодействий между процессорамиНеоднородность / Отказы узлов
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 12 / 89
Распределенная память
ПреимуществаНизкая стоимостьВысокая масштабируемостьМеньше проблем с синхронизациейДекомпозиция на крупные подзадачи
ПроблемыНеобходимость использования сообщенийВысокие временные задержки и низкая пропускная способность=> ограниченный круг задач, оптимизация распределения данныхи взаимодействий между процессорамиНеоднородность / Отказы узлов
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 12 / 89
Гибридные системы
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 13 / 89
Теоретические основы параллельных вычислений
Анализ внутренней структуры алгоритма и выявлениепараллелизмаМодель параллельного алгоритмаПоказатели качества параллельного алгоритмаЗаконы Амдала и Густафсона
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 14 / 89
Анализ внутренней структуры алгоритма и выявлениепараллелизма
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 15 / 89
Представление алгоритма в виде графа
Ориентированный ациклический граф "операции – операнды"G(V,R)V — вершины графа, соответствующие выполняемым операциямалгоритмаR — дуги графа r(i,j), указывающие на то, что операция iиспользует результат операции j
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 16 / 89
Пример
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 17 / 89
Граф примера
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 18 / 89
Параллельная форма графа
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 19 / 89
Редукция высоты дерева
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 20 / 89
Цикл 1
1 for (i=1; i<N; i++) {2 for (j=1; j<M; j++) {3 A[i][j] = A[i-1][j] + A[i][j];4 }5 }
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 21 / 89
Цикл 1
1 for (i=1; i<N; i++) {2 for (j=1; j<M; j++) {3 A[i][j] = A[i-1][j] + A[i][j];4 }5 }
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 21 / 89
Цикл 2
1 for (i=1; i<N; i++) {2 for (j=1; j<M; j++) {3 A[i][j] = A[i-1][j] + A[i][j-1];4 }5 }
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 22 / 89
Устранение зависимостей
1 i1 = 4;2 i2 = 0;3 for (k = 1; k < N; k++) {4 B[i1++] = function1(k,q,r);5 i2 += k;6 A[i2] = function2(k,r,q);7 }
1 i1 = 4;2 i2 = 0;3 for (k = 1; k < N; k++) {4 B[k+4] = function1(k,q,r);5 i2 = (k*k + k)/2;6 A[i2] = function2(k,r,q);7 }
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 23 / 89
Устранение зависимостей
1 i1 = 4;2 i2 = 0;3 for (k = 1; k < N; k++) {4 B[i1++] = function1(k,q,r);5 i2 += k;6 A[i2] = function2(k,r,q);7 }
1 i1 = 4;2 i2 = 0;3 for (k = 1; k < N; k++) {4 B[k+4] = function1(k,q,r);5 i2 = (k*k + k)/2;6 A[i2] = function2(k,r,q);7 }
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 23 / 89
Редукция
1 sum = 0;2 max = c[0];3 for (i = 0; i < N; i++) {4 sum += c[i];5 max = (c[i] > max ? c[i] : max);6 }
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 24 / 89
"Плохие"примеры
1 for (i = 1; i < N; i++)2 a[i] = a[i-1] + b[i];
1 for (k = 5; k < N; k++) {2 b[k] = DoSomething(k);3 a[k] = b[k-5] + MoreStuff(k);4 }
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 25 / 89
"Плохие"примеры
1 for (i = 1; i < N; i++)2 a[i] = a[i-1] + b[i];
1 for (k = 5; k < N; k++) {2 b[k] = DoSomething(k);3 a[k] = b[k-5] + MoreStuff(k);4 }
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 25 / 89
Последний пример
1 wrap = a[0] * b[0];2 for (i = 1; i < N; i++) {3 c[i] = wrap;4 wrap = a[i] * b[i];5 d[i] = 2 * wrap;6 }
1 for (i = 1; i < N; i++) {2 wrap = a[i-1] * b[i-1];3 c[i] = wrap;4 wrap = a[i] * b[i];5 d[i] = 2 * wrap;6 }
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 26 / 89
Последний пример
1 wrap = a[0] * b[0];2 for (i = 1; i < N; i++) {3 c[i] = wrap;4 wrap = a[i] * b[i];5 d[i] = 2 * wrap;6 }
1 for (i = 1; i < N; i++) {2 wrap = a[i-1] * b[i-1];3 c[i] = wrap;4 wrap = a[i] * b[i];5 d[i] = 2 * wrap;6 }
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 26 / 89
Модель параллельного алгоритма
Модель параллельного алгоритма Ap(G ,Hp), выполняемого сиспользованием p процессоров
Расписание Hp = {(i ,Pi , ti ) : i ∈ V }i - операцияPi - номер процессора, выполняющего операциюti - время начала выполнения операции
Условия реализуемости расписания∀i , j ∈ V : ti = tj ⇒ Pi 6= Pj
∀(i , j) ∈ R : tj >= ti + 1
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 27 / 89
Модель параллельного алгоритма
Модель параллельного алгоритма Ap(G ,Hp), выполняемого сиспользованием p процессоров
Расписание Hp = {(i ,Pi , ti ) : i ∈ V }i - операцияPi - номер процессора, выполняющего операциюti - время начала выполнения операции
Условия реализуемости расписания∀i , j ∈ V : ti = tj ⇒ Pi 6= Pj
∀(i , j) ∈ R : tj >= ti + 1
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 27 / 89
Модель параллельного алгоритма
Модель параллельного алгоритма Ap(G ,Hp), выполняемого сиспользованием p процессоров
Расписание Hp = {(i ,Pi , ti ) : i ∈ V }i - операцияPi - номер процессора, выполняющего операциюti - время начала выполнения операции
Условия реализуемости расписания∀i , j ∈ V : ti = tj ⇒ Pi 6= Pj
∀(i , j) ∈ R : tj >= ti + 1
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 27 / 89
Упрощающие предположения
Время выполнения любой операции = 1Передача данных между процессорами выполняется мгновенно
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 28 / 89
Время выполнения последовательного алгоритма
Время выполнения для заданной вычислительной схемы
T1(G ) = |V |
Время выполнения последовательного алгоритма
T1 = minG
T1(G )
Время последовательного решения задачи
T ∗1 = minT1
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 29 / 89
Время выполнения последовательного алгоритма
Время выполнения для заданной вычислительной схемы
T1(G ) = |V |
Время выполнения последовательного алгоритма
T1 = minG
T1(G )
Время последовательного решения задачи
T ∗1 = minT1
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 29 / 89
Время выполнения последовательного алгоритма
Время выполнения для заданной вычислительной схемы
T1(G ) = |V |
Время выполнения последовательного алгоритма
T1 = minG
T1(G )
Время последовательного решения задачи
T ∗1 = minT1
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 29 / 89
Время выполнения параллельного алгоритма
Время выполнения с заданным расписаниемTp(G ,Hp) = max
i∈V(ti + 1)
Время выполнения с оптимальным расписаниемTp(G ) = min
Hp
Tp(G ,Hp)
Время выполнения с наилучшей вычислительной схемойTp = min
GTp(G )
Минимально возможное время выполнения (неограниченныйпараллелизм)
T∞ = minp>=1
Tp
T∞(G ) = d(G )
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 30 / 89
Время выполнения параллельного алгоритма
Время выполнения с заданным расписаниемTp(G ,Hp) = max
i∈V(ti + 1)
Время выполнения с оптимальным расписаниемTp(G ) = min
Hp
Tp(G ,Hp)
Время выполнения с наилучшей вычислительной схемойTp = min
GTp(G )
Минимально возможное время выполнения (неограниченныйпараллелизм)
T∞ = minp>=1
Tp
T∞(G ) = d(G )
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 30 / 89
Время выполнения параллельного алгоритма
Время выполнения с заданным расписаниемTp(G ,Hp) = max
i∈V(ti + 1)
Время выполнения с оптимальным расписаниемTp(G ) = min
Hp
Tp(G ,Hp)
Время выполнения с наилучшей вычислительной схемойTp = min
GTp(G )
Минимально возможное время выполнения (неограниченныйпараллелизм)
T∞ = minp>=1
Tp
T∞(G ) = d(G )
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 30 / 89
Время выполнения параллельного алгоритма
Время выполнения с заданным расписаниемTp(G ,Hp) = max
i∈V(ti + 1)
Время выполнения с оптимальным расписаниемTp(G ) = min
Hp
Tp(G ,Hp)
Время выполнения с наилучшей вычислительной схемойTp = min
GTp(G )
Минимально возможное время выполнения (неограниченныйпараллелизм)
T∞ = minp>=1
Tp
T∞(G ) = d(G )
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 30 / 89
Показатели качества параллельного алгоритма
Ускорение
Sp(n) =T ∗1 (n)
Tp(n)
Эффективность
Ep(n) =Sp(n)
p=
T1(n)
pTp(n)
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 31 / 89
Показатели качества параллельного алгоритма
Ускорение
Sp(n) =T ∗1 (n)
Tp(n)
Эффективность
Ep(n) =Sp(n)
p=
T1(n)
pTp(n)
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 31 / 89
Ускорение
S = p
Идеальный случай
S < p
Последовательные части алгоритмаНакладные расходыКоординация
S > p
Увеличение кэша и оперативной памятиНелинейная зависимость сложности решения задачи от объемавходных данныхРазличные вычислительные схемы
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 32 / 89
Ускорение
S = p
Идеальный случай
S < p
Последовательные части алгоритмаНакладные расходыКоординация
S > p
Увеличение кэша и оперативной памятиНелинейная зависимость сложности решения задачи от объемавходных данныхРазличные вычислительные схемы
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 32 / 89
Ускорение
S = p
Идеальный случай
S < p
Последовательные части алгоритмаНакладные расходыКоординация
S > p
Увеличение кэша и оперативной памятиНелинейная зависимость сложности решения задачи от объемавходных данныхРазличные вычислительные схемы
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 32 / 89
Ускорение
S = p
Идеальный случай
S < p
Последовательные части алгоритмаНакладные расходыКоординация
S > p ???
Увеличение кэша и оперативной памятиНелинейная зависимость сложности решения задачи от объемавходных данныхРазличные вычислительные схемы
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 32 / 89
Ускорение
S = p
Идеальный случай
S < p
Последовательные части алгоритмаНакладные расходыКоординация
S > p
Увеличение кэша и оперативной памятиНелинейная зависимость сложности решения задачи от объемавходных данныхРазличные вычислительные схемы
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 32 / 89
Ускорение vs Эффективность
Показатели качества параллельного алгоритма часто являютсяпротиворечивыми
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 33 / 89
Максимально достижимое ускорение (Закон Амдала)
Доля последовательных вычислений
f =Tseq
T1
Время выполнения параллельного алгоритма
Tp = fT1 +(1− f )T1
p
Ускорение
Sp =1
f + 1−fp
Максимально достижимое ускорение
limp→∞
Sp =1
f
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 34 / 89
Максимально достижимое ускорение (Закон Амдала)
Доля последовательных вычислений
f =Tseq
T1
Время выполнения параллельного алгоритма
Tp = fT1 +(1− f )T1
p
Ускорение
Sp =1
f + 1−fp
Максимально достижимое ускорение
limp→∞
Sp =1
f
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 34 / 89
Максимально достижимое ускорение (Закон Амдала)
Доля последовательных вычислений
f =Tseq
T1
Время выполнения параллельного алгоритма
Tp = fT1 +(1− f )T1
p
Ускорение
Sp =1
f + 1−fp
Максимально достижимое ускорение
limp→∞
Sp =1
f
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 34 / 89
Максимально достижимое ускорение (Закон Амдала)
Доля последовательных вычислений
f =Tseq
T1
Время выполнения параллельного алгоритма
Tp = fT1 +(1− f )T1
p
Ускорение
Sp =1
f + 1−fp
Максимально достижимое ускорение
limp→∞
Sp =1
f
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 34 / 89
Ускорение
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 35 / 89
Эффективность
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 36 / 89
"Последовательные"части программы?
Инициализация и завершение работыЧтение входных данных и записьСинхронизация, критические секции
Пул потоков обрабатывает независимые заданияИзвлечение заданий из очередиОбработка результатов
Запись результатов в общую структуру данныхСлияние результатов из локальных структур данных
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 37 / 89
"Последовательные"части программы?
Инициализация и завершение работы
Чтение входных данных и записьСинхронизация, критические секции
Пул потоков обрабатывает независимые заданияИзвлечение заданий из очередиОбработка результатов
Запись результатов в общую структуру данныхСлияние результатов из локальных структур данных
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 37 / 89
"Последовательные"части программы?
Инициализация и завершение работыЧтение входных данных и запись
Синхронизация, критические секции
Пул потоков обрабатывает независимые заданияИзвлечение заданий из очередиОбработка результатов
Запись результатов в общую структуру данныхСлияние результатов из локальных структур данных
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 37 / 89
"Последовательные"части программы?
Инициализация и завершение работыЧтение входных данных и записьСинхронизация, критические секции
Пул потоков обрабатывает независимые заданияИзвлечение заданий из очередиОбработка результатов
Запись результатов в общую структуру данныхСлияние результатов из локальных структур данных
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 37 / 89
"Последовательные"части программы?
Инициализация и завершение работыЧтение входных данных и записьСинхронизация, критические секции
Пул потоков обрабатывает независимые заданияИзвлечение заданий из очередиОбработка результатов
Запись результатов в общую структуру данныхСлияние результатов из локальных структур данных
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 37 / 89
Что делать?
Выбор более подходящего алгоритма
Увеличение размера решаемой задачиЭффект АмдалаУмножение матриц (I/O ∼ N2, вычисления ∼ N3)
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 38 / 89
Что делать?
Выбор более подходящего алгоритма
Увеличение размера решаемой задачиЭффект АмдалаУмножение матриц (I/O ∼ N2, вычисления ∼ N3)
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 38 / 89
Что делать?
Выбор более подходящего алгоритма
Увеличение размера решаемой задачиЭффект АмдалаУмножение матриц (I/O ∼ N2, вычисления ∼ N3)
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 38 / 89
Ускорение масштабирования(Закон Густафсона-Барсиса)
g =Tseq
Tseq +Tpar
p
T1 = gTp + p(1− g)Tp
Sp = p + (1− p)g
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 39 / 89
Ускорение масштабирования(Закон Густафсона-Барсиса)
g =Tseq
Tseq +Tpar
p
T1 = gTp + p(1− g)Tp
Sp = p + (1− p)g
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 39 / 89
Ускорение масштабирования(Закон Густафсона-Барсиса)
g =Tseq
Tseq +Tpar
p
T1 = gTp + p(1− g)Tp
Sp = p + (1− p)g
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 39 / 89
Принципы разработки параллельных алгоритмов
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 40 / 89
Прежде чем начать
Стоит ли задача усилий?
Оптимизирован ли код?
Используется ли эффективный алгоритм?
Какие части задачи наиболее интенсивны в вычислительномотношении?
Есть ли там параллелизм?
Есть ли готовые параллельные реализации?
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 41 / 89
Предисловие
Parallel algorithm design is not easily reduced to simple recipes.Rather, it requires the sort of integrative thought that iscommonly referred to as "creativity". However, it can benefitfrom a methodical approach that maximizes the range of optionsconsidered, that provides mechanisms for evaluating alternatives,and that reduces the cost of backtracking from bad choices.
(Foster I. Designing and Building Parallel Programs: Conceptsand Tools for Software Engineering. Reading, MA:Addison-Wesley, 1995.)
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 42 / 89
Методология PCAM
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 43 / 89
Этапы разработки параллельного алгоритма
Декомпозиция на подзадачи
Анализ зависимостей и организация взаимодействия междуподзадачами
(Выбор вычислительной системы)
Масштабирование подзадач
Распределение подзадач между процессорами
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 44 / 89
Декомпозиция на подзадачи
Выявление возможностей для параллельного выполнения
Размер подзадач выбирается минимальным (максимальновозможное число подзадач)
Далее подзадачи могут быть укрупнены
Виды декомпозицииПо данным (domain decomposition)Функциональная (functional decomposition)
Избегание дублирования вычислений и данных
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 45 / 89
Выбор структуры алгоритма
Существуют типовые структуры параллельных алгоритмов 1
ДекомпозицияПо заданиямПо даннымПо потокам данных
Комбинация нескольких структурПоследовательность, иерархия, композиция
1Mattson T., Sanders B., Massingill B. Patterns for Parallel Programming.Addison-Wesley, 2004.
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 46 / 89
Декомпозиция на задания
Декомпозицияна задания
TaskParallelism
Линейная процедура Рекурсивная процедура
Divide andConquer
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 47 / 89
Task Parallelism
Многовариантный счет, Монте-Карло, рендерингБольшое количество заданий, нет зависимостей (embarassinglyparallel)
Молекулярная динамикаВычисление сил, действующих на атом ∼ O(n ∗ N), n << NТребуется координация ∼ O(N)
Метод "ветвей и границ"(branch and bound)Обход и разбиение множества решений в соответствии справилами отсева и ветвленияДинамическое порождение заданийНе требуется выполнение всех заданий
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 48 / 89
Divide and Conquer
Декомпозицияна задания
TaskParallelism
Линейная процедура Рекурсивная процедура
Divide andConquer
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 49 / 89
Divide and Conquer
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 50 / 89
Примеры
СортировкаMergesort
Линейная алгебраАлгоритм Штрассена
Обработка сигналовБыстрое преобразование Фурье
Задача N телBarnes-Hut, Fast Multipole
Вычислительная геометрияConvex hull, nearest neighbor
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 51 / 89
Особенности
Степень параллелизма изменяется в ходе выполнения алгоритма
Операции split и merge могут стать узким местом (см. законАмдала)
Задания порождаются динамически
Очень большое количество заданий может привести кзначительным накладным расходам
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 52 / 89
Геометрическая декомпозиция
Декомпозицияданных
Геометрическаядекомпозиция
Линейная процедура Рекурсивная процедура
Рекурсивныеданные
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 53 / 89
Геометрическая декомпозиция
Алгоритм организован вокруг структуры данных, разбитой нанабор одновременно обновляемых областей
Подзадачами являются обновления отдельных областейструктуры данных
Вычисления локализованы внутри области?Да: независимый параллелизм, см. Task ParallelismНет: требуется разделение данных между областями
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 54 / 89
Примеры
Численное решение дифференциальных уравнений методомконечных разностей
Умножение матриц
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 55 / 89
Ключевые моменты
Декомпозиция структуры данных на областиРазмер подзадач обычно подбирается эмпирическиФорма области влияет на накладные расходы
Соотношение объема к площади поверхности
Дублирование соседних точек (ghost copies)
Реализация обмена даннымиПеред операцией обновленияСовмещенно с операцией обновления
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 56 / 89
Рекурсивные данные
Декомпозицияданных
Геометрическаядекомпозиция
Линейная процедура Рекурсивная процедура
Рекурсивныеданные
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 57 / 89
Рекурсивные данные
Алгоритм работает с рекурсивной структурой данных (список,дерево, граф)
Часто кажется, что единственный способ решения –последовательный обход структурыОднако иногда возможно перестроить алгоритм так, что операциинад отдельными элементами можно выполнять одновременно
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 58 / 89
Конвейерная обработка
Потокданных
Конвейернаяобработка
Регулярный Нерегулярный
Координация на основе событий
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 59 / 89
Конвейерная обработка
Вычисления производятся над набором элементов данных,каждый из которых проходит несколько стадий обработки
Регулярный, односторонний, стабильный поток данных
ПримерыКонвейерная обработка команд процессоромВекторно-конвейерные супекомпьютерыОбработка сигналов, фильтры, графика, реализация в железеUnix pipes
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 60 / 89
Конвейерный параллелизм
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 61 / 89
Подзадачи
Применение операции "стадия N"к каждому элементу данных
1 initialize2 while (more data) {3 receive data element from previous stage4 perform operation on data element5 send data element to next stage6 } finalize
Ограничения на порядок применения стадий определяютзависимости между заданиями
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 62 / 89
Особенности
Параллелизм ограничен числом стадий
В идеале времена работы каждой стадии должны бытьодинаковыми
Самая медленная стадия становится узким местомКомбинирование и декомпозиция стадийРаспараллеливание медленной стадии
Работает лучше, если времена заполнения и опустошенияконвейера гораздо меньше полного времени работы
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 63 / 89
Координация на основе событий
Потокданных
Конвейернаяобработка
Регулярный Нерегулярный
Координация на основе событий
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 64 / 89
Координация на основе событий
Декомпозиция на слабозависимые компоненты,взаимодействующие нерегулярным образом
Ср. с конвейеромНе обязательно линейная структураДвусторонние потоки данныхНерегулярные, непредсказуемые взаимодействия
ПримерыМоделирование с дискретными событиямиКоординация между заданиями в других шаблонахActors, распределенные системы...
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 65 / 89
Задания
Прием, обработка и отправка событий для отдельного компонента
1 initialize2 while(not done){3 receive event4 process event5 send events6 } finalize
Задания взаимодействуют через генерацию, отправку и обработкусобытий
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 66 / 89
Особенности
Сохранение порядка событий
Высокий риск возникновения взаимной блокировки
Нерегулярность усложняет распределение заданий поисполнителям
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 67 / 89
Этапы разработки параллельного алгоритма
Декомпозиция на подзадачи
Анализ зависимостей и организация взаимодействия междуподзадачами
(Выбор вычислительной системы)
Масштабирование подзадач
Распределение подзадач между процессорами
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 68 / 89
Декомпозиция на подзадачи
Контрольные вопросыПревосходит ли количество подзадач число процессоров вцелевой системе как минимум на порядок?Не приводит ли декомпозиция к дублированию вычислений иувеличению требований к хранению данных?Имеют ли подзадачи сопоставимый размер?Увеличивается ли количество подзадач с ростом размера задачи?Определено ли несколько альтернативных схем декомпозиции?
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 69 / 89
Организация взаимодействия между подзадачами
Выделение информационных зависимостей между подзадачами=> операции взаимодействия
Граф «подзадачи-каналы-сообщения»
Минимизация числа каналов и операций взаимодействия
Распределение операций взаимодействий между процессами, свозможностью их параллельного выполнения
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 70 / 89
Виды взаимодействий
Локальные и глобальные
Структурированные и неструктурированные
Статические и динамические
Синхронные и асинхронные
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 71 / 89
Локальные взаимодействия
Методы конечных разностейГаусс-ЯкобиГаусс-ЗейдельХаотическая релаксацияRed-Black
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 72 / 89
Глобальные взаимодействия
РедукцияЦентрализованное решениеРаспределенное решениеDivide and Conquer
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 73 / 89
Организация взаимодействия между подзадачами
Контрольные вопросыЯвляется ли одинаковой интенсивность взаимодействий для всехподзадач?Взаимодействует ли каждая подзадача только с небольшимчислом «соседей» (локальность)?Могут ли операции взаимодействия выполняться одновременно?Не препятствует ли выбранная схема взаимодействияпараллельному выполнению подзадач?
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 74 / 89
Выбор вычислительной системы
Соблюдение баланса междуАбстрактностью и переносимостью алгоритмаЭффективностью для целевой платформы
На ранних стадиях разработки параллельного алгоритма лучшеизбегать тесной привязки к конкретной платформе
Алгоритм хорошо работает на целевой платформеАлгоритм достаточно гибок для того, чтобы его можно былоадаптировать под другие платформы и архитектуры
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 75 / 89
Выбор вычислительной системы
Количество процессоров PМожно подобрать P одинаковых подзадачМожно подобрать N >> P подзадач
Обмен данными между процессорамиБольшой объем общих данных или интенсивные обмены данными=> общая память, SMPГруппировка подзадач по процессорам
Соотношение между временами вычислений и обмена данными(синхронизации)
Зависит от размера подзадачи и характеристик платформы
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 76 / 89
Масштабирование подзадач
Адаптация алгоритма для эффективного выполнения на целевойсистеме
Учет доступного количества процессоровУменьшение накладных расходов на взаимодействие, созданиеподзадач...
Укрупнение (агломерация) подзадачКакое количество подзадач выбрать?
Репликация данных и вычислений
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 77 / 89
Масштабирование подзадач
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 78 / 89
Масштабирование подзадач
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 79 / 89
Пример
Суммирование N чиселВычисленная сумма должна оказаться на каждой подзадаче(процессе)
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 80 / 89
Гибкость
Отсутствие ограничений на количество подзадач
Возможность легко увеличивать и уменьшать количествоподзадач
Возможность автоматически изменять число подзадач взависимости от количества процессоров
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 81 / 89
Масштабирование подзадач
Контрольные вопросыУменьшились ли расходы на взаимодействия в результатеувеличения локальности вычислений?Перевешивают ли преимущества от дублирования вычисленийдополнительные расходы? (для задач разного размера и разногокол-ва процессоров)Не ограничивает ли дублирование данных масштабируемостьалгоритма?Имеют ли полученные подзадачи одинаковую вычислительную икоммуникационную сложность?Масштабируется ли по-прежнему количество подзадач с ростомразмера задачи?Достаточно ли имеющегося в алгоритме параллелизма длятекущей и будущих систем?Может ли количество подзадач быть далее уменьшено безнежелательных последствий?О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 82 / 89
Признаки хорошего алгоритма
Возможность варьировать число и размер подзадач =>параметризация подзадач
Подзадачи должны быть достаточно крупными, чтобыкомпенсировать накладные расходы
Подзадачи должны быть достаточно независимыми, чтобыкоординация не стала узким местом
Время обработки подзадач должно быть примерно одинаковымдля лучшей балансировки нагрузки
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 83 / 89
Распределение подзадач между процессорами
Минимизация времени выполнения алгоритма
Размещение подзадач, которые могут выполняться одновременно,на разных процессорах
Размещение подзадач, которые часто взаимодействуют, на одномпроцессоре
Равномерная загрузка процессоров
NP-полная задачаСтратегии и эвристики
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 84 / 89
Статическое планирование (тривиальное)
Подзадачи одинакового размераФиксированное число подзадачСтруктурированные локальные и глобальные взаимодействия
Фиксированное число процессоровОднородная системаГетерогенная система
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 85 / 89
Балансировка нагрузки
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 86 / 89
Статическое планирование с балансировкой нагрузки
Подзадачи различного размераНеструктурированные взаимодействия
Число подзадач >> числа процессоровСлучайное распределениеЦиклическая схема
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 87 / 89
Динамическое планирование с балансировкой нагрузки
Динамически изменяются во время выполнения алгоритмаЧисло подзадачВычислительная и коммуникационная сложность подзадачСостав процессоров
Типичные стратегииОбщая очередь заданий (master-worker)Децентрализованная схема (work stealing)Миграция вычислений
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 88 / 89
Распределение подзадач между процессорами
Контрольные вопросыСуществует ли необходимость динамической балансировкивычислений?Не станет ли мастер узким местом при централизованной схемебалансировки нагрузки?Произведена ли оценка относительной сложности различныхстратегий при динамической балансировке нагрузки?Имеется ли достаточно большое число подзадач прииспользовании случайной или циклической схем статическойбалансировки?
О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 89 / 89