SlideShare a Scribd company logo
1 of 123
Download to read offline
03 Параллельные вычисления

                          О.В. Сухорослов

                       oleg.sukhoroslov@gmail.com


                              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,   Multiple Instruction,
                                               Single Data          Single Data
             Поток данных




                                                 (SISD)                (MISD)
                            множественный




                                            Singe Instruction,   Multiple Instruction,
                                              Multiple Data        Multiple Data
                                                 (SIMD)                (MIMD)




    О.В. Сухорослов                               () Параллельные вычисления
                                                  03                                     02.03.2011   7 / 89
Детализация категории MIMD

   Системы с общей разделяемой памятью (мультипроцессоры)
   Системы с распределенной памятью (мультикомпьютеры)
   Гибридные системы




    О.В. Сухорослов    () Параллельные вычисления
                       03                           02.03.2011   8 / 89
Общая разделяемая память
   Однородный доступ к памяти (UMA)
         Симметричные мультипроцессоры (SMP)
   Неоднородный доступ к памяти (NUMA)




    О.В. Сухорослов     () Параллельные вычисления
                        03                           02.03.2011   9 / 89
Общая разделяемая память
   Преимущества
         Привычная модель программирования
         Высокая скорость обмена данными




    О.В. Сухорослов     () Параллельные вычисления
                        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   }




      О.В. Сухорослов       () Параллельные вычисления
                            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 ];




      О.В. Сухорослов        () Параллельные вычисления
                             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   }




      О.В. Сухорослов     () Параллельные вычисления
                          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 процессоров




    О.В. Сухорослов    () Параллельные вычисления
                       03                            02.03.2011   27 / 89
Модель параллельного алгоритма

   Модель параллельного алгоритма Ap (G , Hp ), выполняемого с
   использованием p процессоров

   Расписание Hp = {(i, Pi , ti ) : i ∈ V }
         i - операция
         Pi - номер процессора, выполняющего операцию
         ti - время начала выполнения операции




    О.В. Сухорослов       () Параллельные вычисления
                          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 = Pj
         ∀(i, j) ∈ R : tj >= ti + 1




    О.В. Сухорослов         () Параллельные вычисления
                            03                           02.03.2011   27 / 89
Упрощающие предположения

   Время выполнения любой операции = 1
   Передача данных между процессорами выполняется мгновенно




   О.В. Сухорослов   () Параллельные вычисления
                     03                           02.03.2011   28 / 89
Время выполнения последовательного алгоритма

   Время выполнения для заданной вычислительной схемы
                           T1 (G ) = |V |




    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   29 / 89
Время выполнения последовательного алгоритма

   Время выполнения для заданной вычислительной схемы
                           T1 (G ) = |V |


   Время выполнения последовательного алгоритма
                        T1 = min T1 (G )
                                 G




    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   29 / 89
Время выполнения последовательного алгоритма

   Время выполнения для заданной вычислительной схемы
                           T1 (G ) = |V |


   Время выполнения последовательного алгоритма
                        T1 = min T1 (G )
                                 G



   Время последовательного решения задачи
                            ∗
                           T1 = min T1




    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   29 / 89
Время выполнения параллельного алгоритма

   Время выполнения с заданным расписанием
                   Tp (G , Hp ) = max(ti + 1)
                                    i∈V




    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   30 / 89
Время выполнения параллельного алгоритма

   Время выполнения с заданным расписанием
                   Tp (G , Hp ) = max(ti + 1)
                                      i∈V


   Время выполнения с оптимальным расписанием
                    Tp (G ) = min Tp (G , Hp )
                                 Hp




    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   30 / 89
Время выполнения параллельного алгоритма

   Время выполнения с заданным расписанием
                   Tp (G , Hp ) = max(ti + 1)
                                      i∈V


   Время выполнения с оптимальным расписанием
                    Tp (G ) = min Tp (G , Hp )
                                 Hp


   Время выполнения с наилучшей вычислительной схемой
                        Tp = min Tp (G )
                                 G




    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   30 / 89
Время выполнения параллельного алгоритма

   Время выполнения с заданным расписанием
                   Tp (G , Hp ) = max(ti + 1)
                                      i∈V


   Время выполнения с оптимальным расписанием
                    Tp (G ) = min Tp (G , Hp )
                                 Hp


   Время выполнения с наилучшей вычислительной схемой
                        Tp = min Tp (G )
                                 G


   Минимально возможное время выполнения (неограниченный
   параллелизм)
                       T∞ = min Tp
                                  p>=1
                         T∞ (G ) = d(G )
    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   30 / 89
Показатели качества параллельного алгоритма

   Ускорение
                                     ∗
                                    T1 (n)
                         Sp (n) =
                                    Tp (n)




    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   31 / 89
Показатели качества параллельного алгоритма

   Ускорение
                                       ∗
                                      T1 (n)
                           Sp (n) =
                                      Tp (n)

   Эффективность
                                 Sp (n)    T1 (n)
                      Ep (n) =          =
                                   p      pTp (n)




    О.В. Сухорослов     () Параллельные вычисления
                        03                           02.03.2011   31 / 89
Ускорение
   S =p
         Идеальный случай




    О.В. Сухорослов     () Параллельные вычисления
                        03                           02.03.2011   32 / 89
Ускорение
   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
Максимально достижимое ускорение (Закон Амдала)

   Доля последовательных вычислений
                               Tseq
                           f =
                                T1




    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   34 / 89
Максимально достижимое ускорение (Закон Амдала)

   Доля последовательных вычислений
                               Tseq
                           f =
                                T1

   Время выполнения параллельного алгоритма
                               (1 − f )T1
                    Tp = fT1 +
                                   p




    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   34 / 89
Максимально достижимое ускорение (Закон Амдала)

   Доля последовательных вычислений
                               Tseq
                           f =
                                T1

   Время выполнения параллельного алгоритма
                               (1 − f )T1
                    Tp = fT1 +
                                   p

   Ускорение
                                    1
                          Sp =
                                 f + 1−f
                                      p




    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   34 / 89
Максимально достижимое ускорение (Закон Амдала)

   Доля последовательных вычислений
                               Tseq
                           f =
                                T1

   Время выполнения параллельного алгоритма
                               (1 − f )T1
                    Tp = fT1 +
                                   p

   Ускорение
                                    1
                          Sp =
                                 f + 1−f
                                      p

   Максимально достижимое ускорение
                                  1
                         lim Sp =
                        p→∞       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
Что делать?




    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   38 / 89
Что делать?

   Выбор более подходящего алгоритма




    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   38 / 89
Что делать?

   Выбор более подходящего алгоритма

   Увеличение размера решаемой задачи
         Эффект Амдала
         Умножение матриц (I/O ∼ N 2 , вычисления ∼ N 3 )




    О.В. Сухорослов       () Параллельные вычисления
                          03                                02.03.2011   38 / 89
Ускорение масштабирования
(Закон Густафсона-Барсиса)

                                   Tseq
                        g=              Tpar
                               Tseq +    p




    О.В. Сухорослов   () Параллельные вычисления
                      03                           02.03.2011   39 / 89
Ускорение масштабирования
(Закон Густафсона-Барсиса)

                                    Tseq
                         g=              Tpar
                                Tseq +    p



                      T1 = gTp + p(1 − g )Tp




    О.В. Сухорослов    () Параллельные вычисления
                       03                           02.03.2011   39 / 89
Ускорение масштабирования
(Закон Густафсона-Барсиса)

                                    Tseq
                         g=              Tpar
                                Tseq +    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 is
   commonly referred to as "creativity". However, it can benefit
   from a methodical approach that maximizes the range of options
   considered, that provides mechanisms for evaluating alternatives,
   and that reduces the cost of backtracking from bad choices.

   (Foster I. Designing and Building Parallel Programs: Concepts
   and 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


     Декомпозиция
           По заданиям
           По данным
           По потокам данных

     Комбинация нескольких структур
           Последовательность, иерархия, композиция




  1
    Mattson T., Sanders B., Massingill B. Patterns for Parallel Programming.
Addison-Wesley, 2004.
      О.В. Сухорослов          () Параллельные вычисления
                               03                                    02.03.2011    46 / 89
Декомпозиция на задания




                                  Декомпозиция
                                   на задания

                      Линейная процедура          Рекурсивная процедура




                         Task                         Divide and
                      Parallelism                      Conquer




    О.В. Сухорослов             () Параллельные вычисления
                                03                                        02.03.2011   47 / 89
Task Parallelism
    Многовариантный счет, Монте-Карло, рендеринг
         Большое количество заданий, нет зависимостей (embarassingly
         parallel)

    Молекулярная динамика
         Вычисление сил, действующих на атом ∼ O(n ∗ N), n << N
         Требуется координация ∼ O(N)

    Метод "ветвей и границ"(branch and bound)
         Обход и разбиение множества решений в соответствии с
         правилами отсева и ветвления
         Динамическое порождение заданий
         Не требуется выполнение всех заданий




    О.В. Сухорослов      () Параллельные вычисления
                         03                               02.03.2011   48 / 89
Divide and Conquer




                                  Декомпозиция
                                   на задания

                      Линейная процедура          Рекурсивная процедура




                         Task                         Divide and
                      Parallelism                      Conquer




    О.В. Сухорослов             () Параллельные вычисления
                                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   initialize
2   while ( more data ) {
3       receive data element from previous stage
4       perform operation on data element
5       send data element to next stage
6   } 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   initialize
2   while ( not done ){
3       receive event
4       process event
5       send events
6   } 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

More Related Content

What's hot

C++ осень 2013 лекция 4
C++ осень 2013 лекция 4C++ осень 2013 лекция 4
C++ осень 2013 лекция 4
Technopark
 
C++ осень 2013 лекция 2
C++ осень 2013 лекция 2C++ осень 2013 лекция 2
C++ осень 2013 лекция 2
Technopark
 
Bgp методякоби
Bgp методякобиBgp методякоби
Bgp методякоби
Michael Karpov
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2
Technopark
 
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
Technopark
 
C++ осень 2013 лекция 9
C++ осень 2013 лекция 9C++ осень 2013 лекция 9
C++ осень 2013 лекция 9
Technopark
 

What's hot (20)

C++ осень 2013 лекция 4
C++ осень 2013 лекция 4C++ осень 2013 лекция 4
C++ осень 2013 лекция 4
 
C++ осень 2013 лекция 2
C++ осень 2013 лекция 2C++ осень 2013 лекция 2
C++ осень 2013 лекция 2
 
Введение в сетевые технологии
Введение в сетевые технологииВведение в сетевые технологии
Введение в сетевые технологии
 
A Method of Reducing Computational Complexity in Verification of Programming ...
A Method of Reducing Computational Complexity in Verification of Programming ...A Method of Reducing Computational Complexity in Verification of Programming ...
A Method of Reducing Computational Complexity in Verification of Programming ...
 
Bgp методякоби
Bgp методякобиBgp методякоби
Bgp методякоби
 
О.В.Сухорослов "MapReduce: приемы и стратегии реализации"
О.В.Сухорослов "MapReduce: приемы и стратегии реализации"О.В.Сухорослов "MapReduce: приемы и стратегии реализации"
О.В.Сухорослов "MapReduce: приемы и стратегии реализации"
 
Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)
 
Lecture1: Introduction to Parallel Computing
Lecture1: Introduction to  Parallel ComputingLecture1: Introduction to  Parallel Computing
Lecture1: Introduction to Parallel Computing
 
Ввведение в java
Ввведение в javaВвведение в java
Ввведение в java
 
Системы контроля версий
Системы контроля версийСистемы контроля версий
Системы контроля версий
 
Java. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторыJava. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторы
 
HappyDev-lite-2016-весна 05 Евгений Тюменцев. Не все технологии одинаково по...
HappyDev-lite-2016-весна 05 Евгений Тюменцев. Не все технологии одинаково по...HappyDev-lite-2016-весна 05 Евгений Тюменцев. Не все технологии одинаково по...
HappyDev-lite-2016-весна 05 Евгений Тюменцев. Не все технологии одинаково по...
 
Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.
 
Java. Cистемы счислния, битовые операции
Java. Cистемы счислния, битовые операцииJava. Cистемы счислния, битовые операции
Java. Cистемы счислния, битовые операции
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2
 
Векторизация кода (семинар 1)
Векторизация кода (семинар 1)Векторизация кода (семинар 1)
Векторизация кода (семинар 1)
 
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
 
Java. Логические операторы, операторы ветвления.
Java. Логические операторы, операторы ветвления.Java. Логические операторы, операторы ветвления.
Java. Логические операторы, операторы ветвления.
 
C++ осень 2013 лекция 9
C++ осень 2013 лекция 9C++ осень 2013 лекция 9
C++ осень 2013 лекция 9
 
лекция 12
лекция 12лекция 12
лекция 12
 

Viewers also liked

Viewers also liked (9)

О.В.Сухорослов "Многопотчное программирование. Часть 1"
О.В.Сухорослов "Многопотчное программирование. Часть 1"О.В.Сухорослов "Многопотчное программирование. Часть 1"
О.В.Сухорослов "Многопотчное программирование. Часть 1"
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 

Similar to О.В.Сухорослов "Паралленльные вычисления"

042
042042
042
JIuc
 
Параллельные вычисления
Параллельные вычисленияПараллельные вычисления
Параллельные вычисления
Artem K
 
обработка информации и алгоритмы
обработка информации  и алгоритмыобработка информации  и алгоритмы
обработка информации и алгоритмы
Елена Ключева
 

Similar to О.В.Сухорослов "Паралленльные вычисления" (17)

презентация 1
презентация 1презентация 1
презентация 1
 
Параллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данныхПараллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данных
 
042
042042
042
 
Параллельные вычисления
Параллельные вычисленияПараллельные вычисления
Параллельные вычисления
 
Параллельные вычисления
Параллельные вычисленияПараллельные вычисления
Параллельные вычисления
 
Trpo 5 треьования_модели
Trpo 5 треьования_моделиTrpo 5 треьования_модели
Trpo 5 треьования_модели
 
ОРГАНИЗАЦИЯ СЕТЕВОГО ВЗАИМОДЕЙСТВИЯ УЗЛОВ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ ХРАНЕНИЯ ДАННЫХ
ОРГАНИЗАЦИЯ СЕТЕВОГО ВЗАИМОДЕЙСТВИЯ УЗЛОВ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ ХРАНЕНИЯ ДАННЫХОРГАНИЗАЦИЯ СЕТЕВОГО ВЗАИМОДЕЙСТВИЯ УЗЛОВ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ ХРАНЕНИЯ ДАННЫХ
ОРГАНИЗАЦИЯ СЕТЕВОГО ВЗАИМОДЕЙСТВИЯ УЗЛОВ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ ХРАНЕНИЯ ДАННЫХ
 
Petsc+slepc slides
Petsc+slepc slidesPetsc+slepc slides
Petsc+slepc slides
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
Distributed Systems Presentation for Business informatics students (Staroletov)
Distributed Systems Presentation for Business informatics students (Staroletov)Distributed Systems Presentation for Business informatics students (Staroletov)
Distributed Systems Presentation for Business informatics students (Staroletov)
 
обработка информации и алгоритмы
обработка информации  и алгоритмыобработка информации  и алгоритмы
обработка информации и алгоритмы
 
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...
 
Java Performance
Java PerformanceJava Performance
Java Performance
 
09 rodionov
09 rodionov09 rodionov
09 rodionov
 
Применение алгоритмов гарантированной двухсторонней оценки решения в задачах ...
Применение алгоритмов гарантированной двухсторонней оценки решения в задачах ...Применение алгоритмов гарантированной двухсторонней оценки решения в задачах ...
Применение алгоритмов гарантированной двухсторонней оценки решения в задачах ...
 
Концепция применения онтологических структур в ERP-системах
Концепция применения онтологических структур в ERP-системахКонцепция применения онтологических структур в ERP-системах
Концепция применения онтологических структур в ERP-системах
 

More from Yandex

Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Yandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Yandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Yandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Yandex
 

More from Yandex (20)

Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 
Эталонное описание фильма на основе десятков дубликатов
Эталонное описание фильма на основе десятков дубликатовЭталонное описание фильма на основе десятков дубликатов
Эталонное описание фильма на основе десятков дубликатов
 

О.В.Сухорослов "Паралленльные вычисления"

  • 1. 03 Параллельные вычисления О.В. Сухорослов oleg.sukhoroslov@gmail.com 02.03.2011 О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 1 / 89
  • 2. План лекции Введение Параллельные вычислительные системы Теоретические основы параллельных вычислений Принципы разработки параллельных алгоритмов О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 2 / 89
  • 3. Параллельные вычисления Использование нескольких процессоров для Решения задачи за меньшее время Решения бОльших задач, чем на одном процессоре О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 3 / 89
  • 4. Параллельные вычисления Использование нескольких процессоров для Решения задачи за меньшее время Решения бОльших задач, чем на одном процессоре Создание параллельного алгоритма Поиск параллелизма в последовательном алгоритме, модификация или создание нового алгоритма Декомпозиция задачи на подзадачи, которые могут выполняться одновременно Определение подзадач и зависимостей между ними О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 3 / 89
  • 5. Параллельные вычисления Использование нескольких процессоров для Решения задачи за меньшее время Решения бОльших задач, чем на одном процессоре Создание параллельного алгоритма Поиск параллелизма в последовательном алгоритме, модификация или создание нового алгоритма Декомпозиция задачи на подзадачи, которые могут выполняться одновременно Определение подзадач и зависимостей между ними Реализация параллельной программы Распределение подзадач между процессорами Организация взаимодействия процессов Учет архитектуры целевой параллельной системы Запуск, измерение и анализ показателей эффективности О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 3 / 89
  • 6. Многопроцессность (concurrency) В операционных системах, серверах, GUI... Данность: много разных процессов, асинхронность Безопасное разделение и оптимальное использование ресурсов между многими процессами Акцент на пропускной способности и времени отклика О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 4 / 89
  • 7. Многопроцессность (concurrency) В операционных системах, серверах, GUI... Данность: много разных процессов, асинхронность Безопасное разделение и оптимальное использование ресурсов между многими процессами Акцент на пропускной способности и времени отклика В параллельных вычислениях Процессы надо найти внутри алгоритма, параллелизм Изоляция процессов друг от друга не так важна Минимизация времени выполнения одной программы О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 4 / 89
  • 8. Режимы выполнения параллельной программы Многозадачный режим Режим разделения времени Активен только один процесс О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 5 / 89
  • 9. Режимы выполнения параллельной программы Многозадачный режим Режим разделения времени Активен только один процесс Параллельное выполнение Многопроцессорная система Конвейерные и векторные устройства О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 5 / 89
  • 10. Режимы выполнения параллельной программы Многозадачный режим Режим разделения времени Активен только один процесс Параллельное выполнение Многопроцессорная система Конвейерные и векторные устройства Распределенные вычисления Несколько независимых машин Влияние сети на скорость обмена данными О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 5 / 89
  • 11. Параллельные вычислительные системы О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 6 / 89
  • 12. Классификация вычислительных систем (Flynn) Поток команд одиночный множественный одиночный Singe Instruction, Multiple Instruction, Single Data Single Data Поток данных (SISD) (MISD) множественный Singe Instruction, Multiple Instruction, Multiple Data Multiple Data (SIMD) (MIMD) О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 7 / 89
  • 13. Детализация категории MIMD Системы с общей разделяемой памятью (мультипроцессоры) Системы с распределенной памятью (мультикомпьютеры) Гибридные системы О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 8 / 89
  • 14. Общая разделяемая память Однородный доступ к памяти (UMA) Симметричные мультипроцессоры (SMP) Неоднородный доступ к памяти (NUMA) О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 9 / 89
  • 15. Общая разделяемая память Преимущества Привычная модель программирования Высокая скорость обмена данными О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 10 / 89
  • 16. Общая разделяемая память Преимущества Привычная модель программирования Высокая скорость обмена данными Проблемы Синхронизация при доступе к общим данным Когерентность кэшей, ложное разделение Масштабируемость Эффективное использование памяти в NUMA О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 10 / 89
  • 17. Распределенная память Процессоры (Cell) Массивно-параллельные системы (MPP) Кластеры Network of workstations (NOW) Grid О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 11 / 89
  • 18. Распределенная память Преимущества Низкая стоимость Высокая масштабируемость Меньше проблем с синхронизацией Декомпозиция на крупные подзадачи О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 12 / 89
  • 19. Распределенная память Преимущества Низкая стоимость Высокая масштабируемость Меньше проблем с синхронизацией Декомпозиция на крупные подзадачи Проблемы Необходимость использования сообщений Высокие временные задержки и низкая пропускная способность => ограниченный круг задач, оптимизация распределения данных и взаимодействий между процессорами Неоднородность / Отказы узлов О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 12 / 89
  • 20. Гибридные системы О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 13 / 89
  • 21. Теоретические основы параллельных вычислений Анализ внутренней структуры алгоритма и выявление параллелизма Модель параллельного алгоритма Показатели качества параллельного алгоритма Законы Амдала и Густафсона О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 14 / 89
  • 22. Анализ внутренней структуры алгоритма и выявление параллелизма О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 15 / 89
  • 23. Представление алгоритма в виде графа Ориентированный ациклический граф "операции – операнды"G(V,R) V — вершины графа, соответствующие выполняемым операциям алгоритма R — дуги графа r(i,j), указывающие на то, что операция i использует результат операции j О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 16 / 89
  • 24. Пример О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 17 / 89
  • 25. Граф примера О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 18 / 89
  • 26. Параллельная форма графа О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 19 / 89
  • 27. Редукция высоты дерева О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 20 / 89
  • 28. Цикл 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
  • 29. Цикл 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
  • 30. Цикл 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
  • 31. Устранение зависимостей 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 } О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 23 / 89
  • 32. Устранение зависимостей 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
  • 33. Редукция 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
  • 34. "Плохие"примеры 1 for ( i = 1; i < N ; i ++) 2 a [ i ] = a [i -1] + b [ i ]; О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 25 / 89
  • 35. "Плохие"примеры 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
  • 36. Последний пример 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 } О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 26 / 89
  • 37. Последний пример 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
  • 38. Модель параллельного алгоритма Модель параллельного алгоритма Ap (G , Hp ), выполняемого с использованием p процессоров О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 27 / 89
  • 39. Модель параллельного алгоритма Модель параллельного алгоритма Ap (G , Hp ), выполняемого с использованием p процессоров Расписание Hp = {(i, Pi , ti ) : i ∈ V } i - операция Pi - номер процессора, выполняющего операцию ti - время начала выполнения операции О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 27 / 89
  • 40. Модель параллельного алгоритма Модель параллельного алгоритма Ap (G , Hp ), выполняемого с использованием p процессоров Расписание Hp = {(i, Pi , ti ) : i ∈ V } i - операция Pi - номер процессора, выполняющего операцию ti - время начала выполнения операции Условия реализуемости расписания ∀i, j ∈ V : ti = tj ⇒ Pi = Pj ∀(i, j) ∈ R : tj >= ti + 1 О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 27 / 89
  • 41. Упрощающие предположения Время выполнения любой операции = 1 Передача данных между процессорами выполняется мгновенно О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 28 / 89
  • 42. Время выполнения последовательного алгоритма Время выполнения для заданной вычислительной схемы T1 (G ) = |V | О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 29 / 89
  • 43. Время выполнения последовательного алгоритма Время выполнения для заданной вычислительной схемы T1 (G ) = |V | Время выполнения последовательного алгоритма T1 = min T1 (G ) G О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 29 / 89
  • 44. Время выполнения последовательного алгоритма Время выполнения для заданной вычислительной схемы T1 (G ) = |V | Время выполнения последовательного алгоритма T1 = min T1 (G ) G Время последовательного решения задачи ∗ T1 = min T1 О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 29 / 89
  • 45. Время выполнения параллельного алгоритма Время выполнения с заданным расписанием Tp (G , Hp ) = max(ti + 1) i∈V О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 30 / 89
  • 46. Время выполнения параллельного алгоритма Время выполнения с заданным расписанием Tp (G , Hp ) = max(ti + 1) i∈V Время выполнения с оптимальным расписанием Tp (G ) = min Tp (G , Hp ) Hp О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 30 / 89
  • 47. Время выполнения параллельного алгоритма Время выполнения с заданным расписанием Tp (G , Hp ) = max(ti + 1) i∈V Время выполнения с оптимальным расписанием Tp (G ) = min Tp (G , Hp ) Hp Время выполнения с наилучшей вычислительной схемой Tp = min Tp (G ) G О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 30 / 89
  • 48. Время выполнения параллельного алгоритма Время выполнения с заданным расписанием Tp (G , Hp ) = max(ti + 1) i∈V Время выполнения с оптимальным расписанием Tp (G ) = min Tp (G , Hp ) Hp Время выполнения с наилучшей вычислительной схемой Tp = min Tp (G ) G Минимально возможное время выполнения (неограниченный параллелизм) T∞ = min Tp p>=1 T∞ (G ) = d(G ) О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 30 / 89
  • 49. Показатели качества параллельного алгоритма Ускорение ∗ T1 (n) Sp (n) = Tp (n) О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 31 / 89
  • 50. Показатели качества параллельного алгоритма Ускорение ∗ T1 (n) Sp (n) = Tp (n) Эффективность Sp (n) T1 (n) Ep (n) = = p pTp (n) О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 31 / 89
  • 51. Ускорение S =p Идеальный случай О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 32 / 89
  • 52. Ускорение S =p Идеальный случай S <p Последовательные части алгоритма Накладные расходы Координация О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 32 / 89
  • 53. Ускорение S =p Идеальный случай S <p Последовательные части алгоритма Накладные расходы Координация S >p О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 32 / 89
  • 54. Ускорение S =p Идеальный случай S <p Последовательные части алгоритма Накладные расходы Координация S > p ??? О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 32 / 89
  • 55. Ускорение S =p Идеальный случай S <p Последовательные части алгоритма Накладные расходы Координация S >p Увеличение кэша и оперативной памяти Нелинейная зависимость сложности решения задачи от объема входных данных Различные вычислительные схемы О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 32 / 89
  • 56. Ускорение vs Эффективность Показатели качества параллельного алгоритма часто являются противоречивыми О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 33 / 89
  • 57. Максимально достижимое ускорение (Закон Амдала) Доля последовательных вычислений Tseq f = T1 О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 34 / 89
  • 58. Максимально достижимое ускорение (Закон Амдала) Доля последовательных вычислений Tseq f = T1 Время выполнения параллельного алгоритма (1 − f )T1 Tp = fT1 + p О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 34 / 89
  • 59. Максимально достижимое ускорение (Закон Амдала) Доля последовательных вычислений Tseq f = T1 Время выполнения параллельного алгоритма (1 − f )T1 Tp = fT1 + p Ускорение 1 Sp = f + 1−f p О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 34 / 89
  • 60. Максимально достижимое ускорение (Закон Амдала) Доля последовательных вычислений Tseq f = T1 Время выполнения параллельного алгоритма (1 − f )T1 Tp = fT1 + p Ускорение 1 Sp = f + 1−f p Максимально достижимое ускорение 1 lim Sp = p→∞ f О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 34 / 89
  • 61. Ускорение О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 35 / 89
  • 62. Эффективность О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 36 / 89
  • 63. "Последовательные"части программы? О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 37 / 89
  • 64. "Последовательные"части программы? Инициализация и завершение работы О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 37 / 89
  • 65. "Последовательные"части программы? Инициализация и завершение работы Чтение входных данных и запись О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 37 / 89
  • 66. "Последовательные"части программы? Инициализация и завершение работы Чтение входных данных и запись Синхронизация, критические секции О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 37 / 89
  • 67. "Последовательные"части программы? Инициализация и завершение работы Чтение входных данных и запись Синхронизация, критические секции Пул потоков обрабатывает независимые задания Извлечение заданий из очереди Обработка результатов Запись результатов в общую структуру данных Слияние результатов из локальных структур данных О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 37 / 89
  • 68. Что делать? О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 38 / 89
  • 69. Что делать? Выбор более подходящего алгоритма О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 38 / 89
  • 70. Что делать? Выбор более подходящего алгоритма Увеличение размера решаемой задачи Эффект Амдала Умножение матриц (I/O ∼ N 2 , вычисления ∼ N 3 ) О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 38 / 89
  • 71. Ускорение масштабирования (Закон Густафсона-Барсиса) Tseq g= Tpar Tseq + p О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 39 / 89
  • 72. Ускорение масштабирования (Закон Густафсона-Барсиса) Tseq g= Tpar Tseq + p T1 = gTp + p(1 − g )Tp О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 39 / 89
  • 73. Ускорение масштабирования (Закон Густафсона-Барсиса) Tseq g= Tpar Tseq + p T1 = gTp + p(1 − g )Tp Sp = p + (1 − p)g О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 39 / 89
  • 74. Принципы разработки параллельных алгоритмов О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 40 / 89
  • 75. Прежде чем начать Стоит ли задача усилий? Оптимизирован ли код? Используется ли эффективный алгоритм? Какие части задачи наиболее интенсивны в вычислительном отношении? Есть ли там параллелизм? Есть ли готовые параллельные реализации? О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 41 / 89
  • 76. Предисловие Parallel algorithm design is not easily reduced to simple recipes. Rather, it requires the sort of integrative thought that is commonly referred to as "creativity". However, it can benefit from a methodical approach that maximizes the range of options considered, that provides mechanisms for evaluating alternatives, and that reduces the cost of backtracking from bad choices. (Foster I. Designing and Building Parallel Programs: Concepts and Tools for Software Engineering. Reading, MA: Addison-Wesley, 1995.) О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 42 / 89
  • 77. Методология PCAM О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 43 / 89
  • 78. Этапы разработки параллельного алгоритма Декомпозиция на подзадачи Анализ зависимостей и организация взаимодействия между подзадачами (Выбор вычислительной системы) Масштабирование подзадач Распределение подзадач между процессорами О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 44 / 89
  • 79. Декомпозиция на подзадачи Выявление возможностей для параллельного выполнения Размер подзадач выбирается минимальным (максимально возможное число подзадач) Далее подзадачи могут быть укрупнены Виды декомпозиции По данным (domain decomposition) Функциональная (functional decomposition) Избегание дублирования вычислений и данных О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 45 / 89
  • 80. Выбор структуры алгоритма Существуют типовые структуры параллельных алгоритмов 1 Декомпозиция По заданиям По данным По потокам данных Комбинация нескольких структур Последовательность, иерархия, композиция 1 Mattson T., Sanders B., Massingill B. Patterns for Parallel Programming. Addison-Wesley, 2004. О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 46 / 89
  • 81. Декомпозиция на задания Декомпозиция на задания Линейная процедура Рекурсивная процедура Task Divide and Parallelism Conquer О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 47 / 89
  • 82. Task Parallelism Многовариантный счет, Монте-Карло, рендеринг Большое количество заданий, нет зависимостей (embarassingly parallel) Молекулярная динамика Вычисление сил, действующих на атом ∼ O(n ∗ N), n << N Требуется координация ∼ O(N) Метод "ветвей и границ"(branch and bound) Обход и разбиение множества решений в соответствии с правилами отсева и ветвления Динамическое порождение заданий Не требуется выполнение всех заданий О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 48 / 89
  • 83. Divide and Conquer Декомпозиция на задания Линейная процедура Рекурсивная процедура Task Divide and Parallelism Conquer О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 49 / 89
  • 84. Divide and Conquer О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 50 / 89
  • 85. Примеры Сортировка Mergesort Линейная алгебра Алгоритм Штрассена Обработка сигналов Быстрое преобразование Фурье Задача N тел Barnes-Hut, Fast Multipole Вычислительная геометрия Convex hull, nearest neighbor О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 51 / 89
  • 86. Особенности Степень параллелизма изменяется в ходе выполнения алгоритма Операции split и merge могут стать узким местом (см. закон Амдала) Задания порождаются динамически Очень большое количество заданий может привести к значительным накладным расходам О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 52 / 89
  • 87. Геометрическая декомпозиция Декомпозиция данных Линейная процедура Рекурсивная процедура Геометрическая Рекурсивные декомпозиция данные О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 53 / 89
  • 88. Геометрическая декомпозиция Алгоритм организован вокруг структуры данных, разбитой на набор одновременно обновляемых областей Подзадачами являются обновления отдельных областей структуры данных Вычисления локализованы внутри области? Да: независимый параллелизм, см. Task Parallelism Нет: требуется разделение данных между областями О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 54 / 89
  • 89. Примеры Численное решение дифференциальных уравнений методом конечных разностей Умножение матриц О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 55 / 89
  • 90. Ключевые моменты Декомпозиция структуры данных на области Размер подзадач обычно подбирается эмпирически Форма области влияет на накладные расходы Соотношение объема к площади поверхности Дублирование соседних точек (ghost copies) Реализация обмена данными Перед операцией обновления Совмещенно с операцией обновления О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 56 / 89
  • 91. Рекурсивные данные Декомпозиция данных Линейная процедура Рекурсивная процедура Геометрическая Рекурсивные декомпозиция данные О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 57 / 89
  • 92. Рекурсивные данные Алгоритм работает с рекурсивной структурой данных (список, дерево, граф) Часто кажется, что единственный способ решения – последовательный обход структуры Однако иногда возможно перестроить алгоритм так, что операции над отдельными элементами можно выполнять одновременно О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 58 / 89
  • 93. Конвейерная обработка Поток данных Регулярный Нерегулярный Конвейерная Координация обработка на основе событий О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 59 / 89
  • 94. Конвейерная обработка Вычисления производятся над набором элементов данных, каждый из которых проходит несколько стадий обработки Регулярный, односторонний, стабильный поток данных Примеры Конвейерная обработка команд процессором Векторно-конвейерные супекомпьютеры Обработка сигналов, фильтры, графика, реализация в железе Unix pipes О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 60 / 89
  • 95. Конвейерный параллелизм О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 61 / 89
  • 96. Подзадачи Применение операции "стадия N"к каждому элементу данных 1 initialize 2 while ( more data ) { 3 receive data element from previous stage 4 perform operation on data element 5 send data element to next stage 6 } finalize Ограничения на порядок применения стадий определяют зависимости между заданиями О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 62 / 89
  • 97. Особенности Параллелизм ограничен числом стадий В идеале времена работы каждой стадии должны быть одинаковыми Самая медленная стадия становится узким местом Комбинирование и декомпозиция стадий Распараллеливание медленной стадии Работает лучше, если времена заполнения и опустошения конвейера гораздо меньше полного времени работы О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 63 / 89
  • 98. Координация на основе событий Поток данных Регулярный Нерегулярный Конвейерная Координация обработка на основе событий О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 64 / 89
  • 99. Координация на основе событий Декомпозиция на слабозависимые компоненты, взаимодействующие нерегулярным образом Ср. с конвейером Не обязательно линейная структура Двусторонние потоки данных Нерегулярные, непредсказуемые взаимодействия Примеры Моделирование с дискретными событиями Координация между заданиями в других шаблонах Actors, распределенные системы... О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 65 / 89
  • 100. Задания Прием, обработка и отправка событий для отдельного компонента 1 initialize 2 while ( not done ){ 3 receive event 4 process event 5 send events 6 } finalize Задания взаимодействуют через генерацию, отправку и обработку событий О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 66 / 89
  • 101. Особенности Сохранение порядка событий Высокий риск возникновения взаимной блокировки Нерегулярность усложняет распределение заданий по исполнителям О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 67 / 89
  • 102. Этапы разработки параллельного алгоритма Декомпозиция на подзадачи Анализ зависимостей и организация взаимодействия между подзадачами (Выбор вычислительной системы) Масштабирование подзадач Распределение подзадач между процессорами О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 68 / 89
  • 103. Декомпозиция на подзадачи Контрольные вопросы Превосходит ли количество подзадач число процессоров в целевой системе как минимум на порядок? Не приводит ли декомпозиция к дублированию вычислений и увеличению требований к хранению данных? Имеют ли подзадачи сопоставимый размер? Увеличивается ли количество подзадач с ростом размера задачи? Определено ли несколько альтернативных схем декомпозиции? О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 69 / 89
  • 104. Организация взаимодействия между подзадачами Выделение информационных зависимостей между подзадачами => операции взаимодействия Граф «подзадачи-каналы-сообщения» Минимизация числа каналов и операций взаимодействия Распределение операций взаимодействий между процессами, с возможностью их параллельного выполнения О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 70 / 89
  • 105. Виды взаимодействий Локальные и глобальные Структурированные и неструктурированные Статические и динамические Синхронные и асинхронные О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 71 / 89
  • 106. Локальные взаимодействия Методы конечных разностей Гаусс-Якоби Гаусс-Зейдель Хаотическая релаксация Red-Black О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 72 / 89
  • 107. Глобальные взаимодействия Редукция Централизованное решение Распределенное решение Divide and Conquer О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 73 / 89
  • 108. Организация взаимодействия между подзадачами Контрольные вопросы Является ли одинаковой интенсивность взаимодействий для всех подзадач? Взаимодействует ли каждая подзадача только с небольшим числом «соседей» (локальность)? Могут ли операции взаимодействия выполняться одновременно? Не препятствует ли выбранная схема взаимодействия параллельному выполнению подзадач? О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 74 / 89
  • 109. Выбор вычислительной системы Соблюдение баланса между Абстрактностью и переносимостью алгоритма Эффективностью для целевой платформы На ранних стадиях разработки параллельного алгоритма лучше избегать тесной привязки к конкретной платформе Алгоритм хорошо работает на целевой платформе Алгоритм достаточно гибок для того, чтобы его можно было адаптировать под другие платформы и архитектуры О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 75 / 89
  • 110. Выбор вычислительной системы Количество процессоров P Можно подобрать P одинаковых подзадач Можно подобрать N >> P подзадач Обмен данными между процессорами Большой объем общих данных или интенсивные обмены данными => общая память, SMP Группировка подзадач по процессорам Соотношение между временами вычислений и обмена данными (синхронизации) Зависит от размера подзадачи и характеристик платформы О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 76 / 89
  • 111. Масштабирование подзадач Адаптация алгоритма для эффективного выполнения на целевой системе Учет доступного количества процессоров Уменьшение накладных расходов на взаимодействие, создание подзадач... Укрупнение (агломерация) подзадач Какое количество подзадач выбрать? Репликация данных и вычислений О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 77 / 89
  • 112. Масштабирование подзадач О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 78 / 89
  • 113. Масштабирование подзадач О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 79 / 89
  • 114. Пример Суммирование N чисел Вычисленная сумма должна оказаться на каждой подзадаче (процессе) О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 80 / 89
  • 115. Гибкость Отсутствие ограничений на количество подзадач Возможность легко увеличивать и уменьшать количество подзадач Возможность автоматически изменять число подзадач в зависимости от количества процессоров О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 81 / 89
  • 116. Масштабирование подзадач Контрольные вопросы Уменьшились ли расходы на взаимодействия в результате увеличения локальности вычислений? Перевешивают ли преимущества от дублирования вычислений дополнительные расходы? (для задач разного размера и разного кол-ва процессоров) Не ограничивает ли дублирование данных масштабируемость алгоритма? Имеют ли полученные подзадачи одинаковую вычислительную и коммуникационную сложность? Масштабируется ли по-прежнему количество подзадач с ростом размера задачи? Достаточно ли имеющегося в алгоритме параллелизма для текущей и будущих систем? Может ли количество подзадач быть далее уменьшено без нежелательных последствий? О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 82 / 89
  • 117. Признаки хорошего алгоритма Возможность варьировать число и размер подзадач => параметризация подзадач Подзадачи должны быть достаточно крупными, чтобы компенсировать накладные расходы Подзадачи должны быть достаточно независимыми, чтобы координация не стала узким местом Время обработки подзадач должно быть примерно одинаковым для лучшей балансировки нагрузки О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 83 / 89
  • 118. Распределение подзадач между процессорами Минимизация времени выполнения алгоритма Размещение подзадач, которые могут выполняться одновременно, на разных процессорах Размещение подзадач, которые часто взаимодействуют, на одном процессоре Равномерная загрузка процессоров NP-полная задача Стратегии и эвристики О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 84 / 89
  • 119. Статическое планирование (тривиальное) Подзадачи одинакового размера Фиксированное число подзадач Структурированные локальные и глобальные взаимодействия Фиксированное число процессоров Однородная система Гетерогенная система О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 85 / 89
  • 120. Балансировка нагрузки О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 86 / 89
  • 121. Статическое планирование с балансировкой нагрузки Подзадачи различного размера Неструктурированные взаимодействия Число подзадач >> числа процессоров Случайное распределение Циклическая схема О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 87 / 89
  • 122. Динамическое планирование с балансировкой нагрузки Динамически изменяются во время выполнения алгоритма Число подзадач Вычислительная и коммуникационная сложность подзадач Состав процессоров Типичные стратегии Общая очередь заданий (master-worker) Децентрализованная схема (work stealing) Миграция вычислений О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 88 / 89
  • 123. Распределение подзадач между процессорами Контрольные вопросы Существует ли необходимость динамической балансировки вычислений? Не станет ли мастер узким местом при централизованной схеме балансировки нагрузки? Произведена ли оценка относительной сложности различных стратегий при динамической балансировке нагрузки? Имеется ли достаточно большое число подзадач при использовании случайной или циклической схем статической балансировки? О.В. Сухорослов () Параллельные вычисления 03 02.03.2011 89 / 89