123
03 Параллельные вычисления О.В. Сухорослов [email protected] 02.03.2011 О.В. Сухорослов 03 Параллельные вычисления 02.03.2011 1 / 89

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

  • Upload
    yandex

  • View
    5.563

  • Download
    5

Embed Size (px)

DESCRIPTION

О.В.Сухорослов "Паралленльные вычисления", 02.03.2012, место показа МФТИ, Школа анализа данных (ШАД)

Citation preview

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

03 Параллельные вычисления

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

[email protected]

02.03.2011

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

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

План лекции

ВведениеПараллельные вычислительные системыТеоретические основы параллельных вычисленийПринципы разработки параллельных алгоритмов

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

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

Параллельные вычисления

Использование нескольких процессоров дляРешения задачи за меньшее времяРешения бОльших задач, чем на одном процессоре

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

Реализация параллельной программыРаспределение подзадач между процессорамиОрганизация взаимодействия процессовУчет архитектуры целевой параллельной системыЗапуск, измерение и анализ показателей эффективности

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

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

Параллельные вычисления

Использование нескольких процессоров дляРешения задачи за меньшее времяРешения бОльших задач, чем на одном процессоре

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

Реализация параллельной программыРаспределение подзадач между процессорамиОрганизация взаимодействия процессовУчет архитектуры целевой параллельной системыЗапуск, измерение и анализ показателей эффективности

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

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

Параллельные вычисления

Использование нескольких процессоров дляРешения задачи за меньшее времяРешения бОльших задач, чем на одном процессоре

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

Реализация параллельной программыРаспределение подзадач между процессорамиОрганизация взаимодействия процессовУчет архитектуры целевой параллельной системыЗапуск, измерение и анализ показателей эффективности

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

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

Многопроцессность (concurrency)

В операционных системах, серверах, GUI...Данность: много разных процессов, асинхронностьБезопасное разделение и оптимальное использование ресурсовмежду многими процессамиАкцент на пропускной способности и времени отклика

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

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

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

Многопроцессность (concurrency)

В операционных системах, серверах, GUI...Данность: много разных процессов, асинхронностьБезопасное разделение и оптимальное использование ресурсовмежду многими процессамиАкцент на пропускной способности и времени отклика

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

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

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

Режимы выполнения параллельной программы

Многозадачный режимРежим разделения времениАктивен только один процесс

Параллельное выполнениеМногопроцессорная системаКонвейерные и векторные устройства

Распределенные вычисленияНесколько независимых машинВлияние сети на скорость обмена данными

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

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

Режимы выполнения параллельной программы

Многозадачный режимРежим разделения времениАктивен только один процесс

Параллельное выполнениеМногопроцессорная системаКонвейерные и векторные устройства

Распределенные вычисленияНесколько независимых машинВлияние сети на скорость обмена данными

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

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

Режимы выполнения параллельной программы

Многозадачный режимРежим разделения времениАктивен только один процесс

Параллельное выполнениеМногопроцессорная системаКонвейерные и векторные устройства

Распределенные вычисленияНесколько независимых машинВлияние сети на скорость обмена данными

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

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

Параллельные вычислительные системы

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

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

Классификация вычислительных систем (Flynn)

Singe Instruction,Single Data

(SISD)

Multiple Instruction,Single Data

(MISD)

Singe Instruction,Multiple Data

(SIMD)

Multiple Instruction,Multiple Data

(MIMD)

Поток командП

ото

к д

анн

ых

одиночный множественныйо

ди

но

чн

ый

мн

ож

еств

енн

ый

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

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

Детализация категории MIMD

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

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

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

Общая разделяемая память

Однородный доступ к памяти (UMA)Симметричные мультипроцессоры (SMP)

Неоднородный доступ к памяти (NUMA)

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

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

Общая разделяемая память

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

ПроблемыСинхронизация при доступе к общим даннымКогерентность кэшей, ложное разделениеМасштабируемостьЭффективное использование памяти в NUMA

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

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

Общая разделяемая память

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

ПроблемыСинхронизация при доступе к общим даннымКогерентность кэшей, ложное разделениеМасштабируемостьЭффективное использование памяти в NUMA

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

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

Распределенная память

Процессоры (Cell)Массивно-параллельные системы (MPP)КластерыNetwork of workstations (NOW)Grid

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

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

Распределенная память

ПреимуществаНизкая стоимостьВысокая масштабируемостьМеньше проблем с синхронизациейДекомпозиция на крупные подзадачи

ПроблемыНеобходимость использования сообщенийВысокие временные задержки и низкая пропускная способность=> ограниченный круг задач, оптимизация распределения данныхи взаимодействий между процессорамиНеоднородность / Отказы узлов

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

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

Распределенная память

ПреимуществаНизкая стоимостьВысокая масштабируемостьМеньше проблем с синхронизациейДекомпозиция на крупные подзадачи

ПроблемыНеобходимость использования сообщенийВысокие временные задержки и низкая пропускная способность=> ограниченный круг задач, оптимизация распределения данныхи взаимодействий между процессорамиНеоднородность / Отказы узлов

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

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

Гибридные системы

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

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

Теоретические основы параллельных вычислений

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

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

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

Анализ внутренней структуры алгоритма и выявлениепараллелизма

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

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

Представление алгоритма в виде графа

Ориентированный ациклический граф "операции – операнды"G(V,R)V — вершины графа, соответствующие выполняемым операциямалгоритмаR — дуги графа r(i,j), указывающие на то, что операция iиспользует результат операции j

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

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

Пример

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

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

Граф примера

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

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

Параллельная форма графа

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

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

Редукция высоты дерева

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

Page 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

Page 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

Page 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

Page 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 }

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

Page 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

Page 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

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

"Плохие"примеры

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

Page 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

Page 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 }

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

Page 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

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

Модель параллельного алгоритма

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

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

Условия реализуемости расписания∀i , j ∈ V : ti = tj ⇒ Pi 6= Pj

∀(i , j) ∈ R : tj >= ti + 1

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

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

Модель параллельного алгоритма

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

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

Условия реализуемости расписания∀i , j ∈ V : ti = tj ⇒ Pi 6= Pj

∀(i , j) ∈ R : tj >= ti + 1

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

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

Модель параллельного алгоритма

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

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

Условия реализуемости расписания∀i , j ∈ V : ti = tj ⇒ Pi 6= Pj

∀(i , j) ∈ R : tj >= ti + 1

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

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

Упрощающие предположения

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

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

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

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

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

T1(G ) = |V |

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

T1 = minG

T1(G )

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

T ∗1 = minT1

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

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

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

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

T1(G ) = |V |

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

T1 = minG

T1(G )

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

T ∗1 = minT1

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

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

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

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

T1(G ) = |V |

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

T1 = minG

T1(G )

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

T ∗1 = minT1

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

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

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

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

i∈V(ti + 1)

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

Hp

Tp(G ,Hp)

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

GTp(G )

Минимально возможное время выполнения (неограниченныйпараллелизм)

T∞ = minp>=1

Tp

T∞(G ) = d(G )

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

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

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

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

i∈V(ti + 1)

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

Hp

Tp(G ,Hp)

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

GTp(G )

Минимально возможное время выполнения (неограниченныйпараллелизм)

T∞ = minp>=1

Tp

T∞(G ) = d(G )

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

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

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

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

i∈V(ti + 1)

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

Hp

Tp(G ,Hp)

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

GTp(G )

Минимально возможное время выполнения (неограниченныйпараллелизм)

T∞ = minp>=1

Tp

T∞(G ) = d(G )

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

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

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

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

i∈V(ti + 1)

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

Hp

Tp(G ,Hp)

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

GTp(G )

Минимально возможное время выполнения (неограниченныйпараллелизм)

T∞ = minp>=1

Tp

T∞(G ) = d(G )

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

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

Показатели качества параллельного алгоритма

Ускорение

Sp(n) =T ∗1 (n)

Tp(n)

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

Ep(n) =Sp(n)

p=

T1(n)

pTp(n)

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

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

Показатели качества параллельного алгоритма

Ускорение

Sp(n) =T ∗1 (n)

Tp(n)

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

Ep(n) =Sp(n)

p=

T1(n)

pTp(n)

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

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

Ускорение

S = p

Идеальный случай

S < p

Последовательные части алгоритмаНакладные расходыКоординация

S > p

Увеличение кэша и оперативной памятиНелинейная зависимость сложности решения задачи от объемавходных данныхРазличные вычислительные схемы

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

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

Ускорение

S = p

Идеальный случай

S < p

Последовательные части алгоритмаНакладные расходыКоординация

S > p

Увеличение кэша и оперативной памятиНелинейная зависимость сложности решения задачи от объемавходных данныхРазличные вычислительные схемы

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

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

Ускорение

S = p

Идеальный случай

S < p

Последовательные части алгоритмаНакладные расходыКоординация

S > p

Увеличение кэша и оперативной памятиНелинейная зависимость сложности решения задачи от объемавходных данныхРазличные вычислительные схемы

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

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

Ускорение

S = p

Идеальный случай

S < p

Последовательные части алгоритмаНакладные расходыКоординация

S > p ???

Увеличение кэша и оперативной памятиНелинейная зависимость сложности решения задачи от объемавходных данныхРазличные вычислительные схемы

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

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

Ускорение

S = p

Идеальный случай

S < p

Последовательные части алгоритмаНакладные расходыКоординация

S > p

Увеличение кэша и оперативной памятиНелинейная зависимость сложности решения задачи от объемавходных данныхРазличные вычислительные схемы

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

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

Ускорение vs Эффективность

Показатели качества параллельного алгоритма часто являютсяпротиворечивыми

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

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

Максимально достижимое ускорение (Закон Амдала)

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

f =Tseq

T1

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

Tp = fT1 +(1− f )T1

p

Ускорение

Sp =1

f + 1−fp

Максимально достижимое ускорение

limp→∞

Sp =1

f

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

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

Максимально достижимое ускорение (Закон Амдала)

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

f =Tseq

T1

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

Tp = fT1 +(1− f )T1

p

Ускорение

Sp =1

f + 1−fp

Максимально достижимое ускорение

limp→∞

Sp =1

f

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

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

Максимально достижимое ускорение (Закон Амдала)

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

f =Tseq

T1

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

Tp = fT1 +(1− f )T1

p

Ускорение

Sp =1

f + 1−fp

Максимально достижимое ускорение

limp→∞

Sp =1

f

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

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

Максимально достижимое ускорение (Закон Амдала)

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

f =Tseq

T1

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

Tp = fT1 +(1− f )T1

p

Ускорение

Sp =1

f + 1−fp

Максимально достижимое ускорение

limp→∞

Sp =1

f

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

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

Ускорение

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

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

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

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

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

"Последовательные"части программы?

Инициализация и завершение работыЧтение входных данных и записьСинхронизация, критические секции

Пул потоков обрабатывает независимые заданияИзвлечение заданий из очередиОбработка результатов

Запись результатов в общую структуру данныхСлияние результатов из локальных структур данных

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

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

"Последовательные"части программы?

Инициализация и завершение работы

Чтение входных данных и записьСинхронизация, критические секции

Пул потоков обрабатывает независимые заданияИзвлечение заданий из очередиОбработка результатов

Запись результатов в общую структуру данныхСлияние результатов из локальных структур данных

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

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

"Последовательные"части программы?

Инициализация и завершение работыЧтение входных данных и запись

Синхронизация, критические секции

Пул потоков обрабатывает независимые заданияИзвлечение заданий из очередиОбработка результатов

Запись результатов в общую структуру данныхСлияние результатов из локальных структур данных

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

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

"Последовательные"части программы?

Инициализация и завершение работыЧтение входных данных и записьСинхронизация, критические секции

Пул потоков обрабатывает независимые заданияИзвлечение заданий из очередиОбработка результатов

Запись результатов в общую структуру данныхСлияние результатов из локальных структур данных

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

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

"Последовательные"части программы?

Инициализация и завершение работыЧтение входных данных и записьСинхронизация, критические секции

Пул потоков обрабатывает независимые заданияИзвлечение заданий из очередиОбработка результатов

Запись результатов в общую структуру данныхСлияние результатов из локальных структур данных

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

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

Что делать?

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

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

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

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

Что делать?

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

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

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

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

Что делать?

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

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

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

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

Ускорение масштабирования(Закон Густафсона-Барсиса)

g =Tseq

Tseq +Tpar

p

T1 = gTp + p(1− g)Tp

Sp = p + (1− p)g

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

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

Ускорение масштабирования(Закон Густафсона-Барсиса)

g =Tseq

Tseq +Tpar

p

T1 = gTp + p(1− g)Tp

Sp = p + (1− p)g

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

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

Ускорение масштабирования(Закон Густафсона-Барсиса)

g =Tseq

Tseq +Tpar

p

T1 = gTp + p(1− g)Tp

Sp = p + (1− p)g

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

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

Принципы разработки параллельных алгоритмов

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

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

Прежде чем начать

Стоит ли задача усилий?

Оптимизирован ли код?

Используется ли эффективный алгоритм?

Какие части задачи наиболее интенсивны в вычислительномотношении?

Есть ли там параллелизм?

Есть ли готовые параллельные реализации?

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

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

Предисловие

Parallel algorithm design is not easily reduced to simple recipes.Rather, it requires the sort of integrative thought that iscommonly referred to as "creativity". However, it can benefitfrom a methodical approach that maximizes the range of optionsconsidered, that provides mechanisms for evaluating alternatives,and that reduces the cost of backtracking from bad choices.

(Foster I. Designing and Building Parallel Programs: Conceptsand Tools for Software Engineering. Reading, MA:Addison-Wesley, 1995.)

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

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

Методология PCAM

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

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

Этапы разработки параллельного алгоритма

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

Анализ зависимостей и организация взаимодействия междуподзадачами

(Выбор вычислительной системы)

Масштабирование подзадач

Распределение подзадач между процессорами

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

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

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

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

Размер подзадач выбирается минимальным (максимальновозможное число подзадач)

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

Виды декомпозицииПо данным (domain decomposition)Функциональная (functional decomposition)

Избегание дублирования вычислений и данных

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

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

Выбор структуры алгоритма

Существуют типовые структуры параллельных алгоритмов 1

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

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

1Mattson T., Sanders B., Massingill B. Patterns for Parallel Programming.Addison-Wesley, 2004.

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

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

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

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

TaskParallelism

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

Divide andConquer

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

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

Task Parallelism

Многовариантный счет, Монте-Карло, рендерингБольшое количество заданий, нет зависимостей (embarassinglyparallel)

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

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

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

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

Divide and Conquer

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

TaskParallelism

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

Divide andConquer

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

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

Divide and Conquer

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

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

Примеры

СортировкаMergesort

Линейная алгебраАлгоритм Штрассена

Обработка сигналовБыстрое преобразование Фурье

Задача N телBarnes-Hut, Fast Multipole

Вычислительная геометрияConvex hull, nearest neighbor

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

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

Особенности

Степень параллелизма изменяется в ходе выполнения алгоритма

Операции split и merge могут стать узким местом (см. законАмдала)

Задания порождаются динамически

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

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

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

Геометрическая декомпозиция

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

Геометрическаядекомпозиция

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

Рекурсивныеданные

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

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

Геометрическая декомпозиция

Алгоритм организован вокруг структуры данных, разбитой нанабор одновременно обновляемых областей

Подзадачами являются обновления отдельных областейструктуры данных

Вычисления локализованы внутри области?Да: независимый параллелизм, см. Task ParallelismНет: требуется разделение данных между областями

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

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

Примеры

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

Умножение матриц

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

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

Ключевые моменты

Декомпозиция структуры данных на областиРазмер подзадач обычно подбирается эмпирическиФорма области влияет на накладные расходы

Соотношение объема к площади поверхности

Дублирование соседних точек (ghost copies)

Реализация обмена даннымиПеред операцией обновленияСовмещенно с операцией обновления

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

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

Рекурсивные данные

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

Геометрическаядекомпозиция

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

Рекурсивныеданные

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

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

Рекурсивные данные

Алгоритм работает с рекурсивной структурой данных (список,дерево, граф)

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

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

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

Конвейерная обработка

Потокданных

Конвейернаяобработка

Регулярный Нерегулярный

Координация на основе событий

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

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

Конвейерная обработка

Вычисления производятся над набором элементов данных,каждый из которых проходит несколько стадий обработки

Регулярный, односторонний, стабильный поток данных

ПримерыКонвейерная обработка команд процессоромВекторно-конвейерные супекомпьютерыОбработка сигналов, фильтры, графика, реализация в железеUnix pipes

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

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

Конвейерный параллелизм

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

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

Подзадачи

Применение операции "стадия N"к каждому элементу данных

1 initialize2 while (more data) {3 receive data element from previous stage4 perform operation on data element5 send data element to next stage6 } finalize

Ограничения на порядок применения стадий определяютзависимости между заданиями

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

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

Особенности

Параллелизм ограничен числом стадий

В идеале времена работы каждой стадии должны бытьодинаковыми

Самая медленная стадия становится узким местомКомбинирование и декомпозиция стадийРаспараллеливание медленной стадии

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

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

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

Координация на основе событий

Потокданных

Конвейернаяобработка

Регулярный Нерегулярный

Координация на основе событий

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

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

Координация на основе событий

Декомпозиция на слабозависимые компоненты,взаимодействующие нерегулярным образом

Ср. с конвейеромНе обязательно линейная структураДвусторонние потоки данныхНерегулярные, непредсказуемые взаимодействия

ПримерыМоделирование с дискретными событиямиКоординация между заданиями в других шаблонахActors, распределенные системы...

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

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

Задания

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

1 initialize2 while(not done){3 receive event4 process event5 send events6 } finalize

Задания взаимодействуют через генерацию, отправку и обработкусобытий

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

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

Особенности

Сохранение порядка событий

Высокий риск возникновения взаимной блокировки

Нерегулярность усложняет распределение заданий поисполнителям

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

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

Этапы разработки параллельного алгоритма

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

Анализ зависимостей и организация взаимодействия междуподзадачами

(Выбор вычислительной системы)

Масштабирование подзадач

Распределение подзадач между процессорами

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

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

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

Контрольные вопросыПревосходит ли количество подзадач число процессоров вцелевой системе как минимум на порядок?Не приводит ли декомпозиция к дублированию вычислений иувеличению требований к хранению данных?Имеют ли подзадачи сопоставимый размер?Увеличивается ли количество подзадач с ростом размера задачи?Определено ли несколько альтернативных схем декомпозиции?

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

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

Организация взаимодействия между подзадачами

Выделение информационных зависимостей между подзадачами=> операции взаимодействия

Граф «подзадачи-каналы-сообщения»

Минимизация числа каналов и операций взаимодействия

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

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

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

Виды взаимодействий

Локальные и глобальные

Структурированные и неструктурированные

Статические и динамические

Синхронные и асинхронные

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

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

Локальные взаимодействия

Методы конечных разностейГаусс-ЯкобиГаусс-ЗейдельХаотическая релаксацияRed-Black

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

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

Глобальные взаимодействия

РедукцияЦентрализованное решениеРаспределенное решениеDivide and Conquer

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

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

Организация взаимодействия между подзадачами

Контрольные вопросыЯвляется ли одинаковой интенсивность взаимодействий для всехподзадач?Взаимодействует ли каждая подзадача только с небольшимчислом «соседей» (локальность)?Могут ли операции взаимодействия выполняться одновременно?Не препятствует ли выбранная схема взаимодействияпараллельному выполнению подзадач?

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

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

Выбор вычислительной системы

Соблюдение баланса междуАбстрактностью и переносимостью алгоритмаЭффективностью для целевой платформы

На ранних стадиях разработки параллельного алгоритма лучшеизбегать тесной привязки к конкретной платформе

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

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

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

Выбор вычислительной системы

Количество процессоров PМожно подобрать P одинаковых подзадачМожно подобрать N >> P подзадач

Обмен данными между процессорамиБольшой объем общих данных или интенсивные обмены данными=> общая память, SMPГруппировка подзадач по процессорам

Соотношение между временами вычислений и обмена данными(синхронизации)

Зависит от размера подзадачи и характеристик платформы

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

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

Масштабирование подзадач

Адаптация алгоритма для эффективного выполнения на целевойсистеме

Учет доступного количества процессоровУменьшение накладных расходов на взаимодействие, созданиеподзадач...

Укрупнение (агломерация) подзадачКакое количество подзадач выбрать?

Репликация данных и вычислений

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

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

Масштабирование подзадач

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

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

Масштабирование подзадач

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

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

Пример

Суммирование N чиселВычисленная сумма должна оказаться на каждой подзадаче(процессе)

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

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

Гибкость

Отсутствие ограничений на количество подзадач

Возможность легко увеличивать и уменьшать количествоподзадач

Возможность автоматически изменять число подзадач взависимости от количества процессоров

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

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

Масштабирование подзадач

Контрольные вопросыУменьшились ли расходы на взаимодействия в результатеувеличения локальности вычислений?Перевешивают ли преимущества от дублирования вычисленийдополнительные расходы? (для задач разного размера и разногокол-ва процессоров)Не ограничивает ли дублирование данных масштабируемостьалгоритма?Имеют ли полученные подзадачи одинаковую вычислительную икоммуникационную сложность?Масштабируется ли по-прежнему количество подзадач с ростомразмера задачи?Достаточно ли имеющегося в алгоритме параллелизма длятекущей и будущих систем?Может ли количество подзадач быть далее уменьшено безнежелательных последствий?О.В. Сухорослов ()03 Параллельные вычисления 02.03.2011 82 / 89

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

Признаки хорошего алгоритма

Возможность варьировать число и размер подзадач =>параметризация подзадач

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

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

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

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

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

Распределение подзадач между процессорами

Минимизация времени выполнения алгоритма

Размещение подзадач, которые могут выполняться одновременно,на разных процессорах

Размещение подзадач, которые часто взаимодействуют, на одномпроцессоре

Равномерная загрузка процессоров

NP-полная задачаСтратегии и эвристики

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

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

Статическое планирование (тривиальное)

Подзадачи одинакового размераФиксированное число подзадачСтруктурированные локальные и глобальные взаимодействия

Фиксированное число процессоровОднородная системаГетерогенная система

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

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

Балансировка нагрузки

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

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

Статическое планирование с балансировкой нагрузки

Подзадачи различного размераНеструктурированные взаимодействия

Число подзадач >> числа процессоровСлучайное распределениеЦиклическая схема

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

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

Динамическое планирование с балансировкой нагрузки

Динамически изменяются во время выполнения алгоритмаЧисло подзадачВычислительная и коммуникационная сложность подзадачСостав процессоров

Типичные стратегииОбщая очередь заданий (master-worker)Децентрализованная схема (work stealing)Миграция вычислений

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

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

Распределение подзадач между процессорами

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

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