88
Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные системы с общей памятью Пазников Алексей Александрович Кафедра вычислительных систем СибГУТИ Сайт курса: http://cpct.sibsutis.ru/~apaznikov/teaching/ Q/A: https://piazza.com/sibsutis.ru/spring2015/pct2015spring Параллельные вычислительные технологии Весна 2015 (Parallel Computing Technologies, PCT 15) 1

ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Embed Size (px)

Citation preview

Page 1: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные системы с общей памятью

Пазников Алексей АлександровичКафедра вычислительных систем СибГУТИ

Сайт курса: http://cpct.sibsutis.ru/~apaznikov/teaching/Q/A: https://piazza.com/sibsutis.ru/spring2015/pct2015spring

Параллельные вычислительные технологииВесна 2015 (Parallel Computing Technologies, PCT 15)

1

Page 2: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

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

2

Page 3: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Мощность суперкомпьютеров

3

Page 4: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Мощность суперкомпьютеров: Top500

4

Page 5: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Список Top500

Site System CoresRmax (TFlop/s)

Rpeak (TFlop/s)

Power (kW)

1 National University of Defense TechnologyChina

Tianhe-2 (MilkyWay-2) - TH-IVB-FEP Cluster, Intel Xeon E5-2692 12C 2.200GHz, TH Express-2, Intel Xeon Phi 31S1P NUDT

3,120,000

33,862.7 54,902.4 17,808

2 DOE/SC/Oak Ridge National LaboratoryUnited States

Titan - Cray XK7 , Opteron 6274 16C 2.200GHz, Cray Gemini interconnect, NVIDIA K20x Cray Inc.

560,640 17,590.0 27,112.5 8,209

3 DOE/NNSA/LLNLUnited States

Sequoia - BlueGene/Q, Power BQC 16C 1.60 GHz, Custom IBM

1,572,864

17,173.2 20,132.7 7,890

4 RIKEN Advanced Institute for Computational Science (AICS)Japan

K computer, SPARC64 VIIIfx 2.0GHz, Tofu interconnectFujitsu

705,024 10,510.0 11,280.4 12,660

5

Page 6: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Список Top500

6

Page 7: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Мощность суперкомпьютеров: экспоненциальный рост

Источник: http://karmak.org/archive/2003/01/art0134.html 7

Page 8: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Области применения ПВТ - наука

▪ Биология (расшифровка генов)

▪ Теоретическая физика (решение уравнений квантовой физики)

▪ Химия (получение новых материалов)

▪ Метеорология (составление прогнозов погоды)

▪ Геология (разведка полезных ископаемых)

▪ ...8

Page 9: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Области применения ПВТ - коммерция

▪ Создание новых автомобилей (аэродинамика поверхностей, моделирование столкновений), самолётов (выбор оптимальной поверхности крыла)

▪ Фармакология (поиск новых лекарств, вакцин)

▪ Финансовое моделирование (поведение биржи, глобальные экономические процессы)

▪ Сырьевой сектор (поиск новых месторождений, моделирование движения газа, нефти)

▪ ...

9

Page 10: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Плотность мощности процессора

Источник: Intel 10

Page 11: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Почему разрабатывать параллельные программы сложно

11

Page 12: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Структура современных суперкомпьютеров (Blue Gene)

12

Page 13: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Структура современных суперкомпьютеров

13

Page 14: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Структура современных суперкомпьютеров

14

Page 15: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Структура современных суперкомпьютеров

AMD FusionIntel MIC

Nvidia Echelon Tilera Tile-Gx15

Page 16: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Эволюция распределённых ВС

• Моделирование процессов магнетизма

• Моделирование сверхпроводимости

• Задачи гидродинамики

1 ГФЛОПС – 1988: Cray Y-MP; 8 процессоров

1 ТФЛОПС – 1998: Cray T3E; 1 024 процессоров

1 ПФЛОПС – 2008: Cray XT5; 150 000 процессоров

• ???

1 ЭФЛОПС – 2018: _______; ~10 000 000 процессоров

16

Page 17: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Эволюция распределённых ВС

• Моделирование процессов магнетизма• Fortran + MPI (Message Passing Interface)

• Моделирование сверхпроводимости• C/C++/Fortran + MPI + векторизация

• Задачи гидродинамики• Fortran77 + векторизация

1 ГФЛОПС – 1988: Cray Y-MP; 8 процессоров

1 ТФЛОПС – 1998: Cray T3E; 1 024 процессоров

1 ПФЛОПС – 2008: Cray XT5; 150 000 процессоров

• ???• C/C++/Fortran + MPI + CUDA/OpenCL/OpenMP/OpenACC

1 ЭФЛОПС – 2018: _______; ~10 000 000 процессоровИли, может быть,

что-то совершенно иное?

17

Page 18: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Эволюция распределённых ВС

▪ Много разнообразных параллельных архитектур▪ Отсутствие какого-либо единого соглашения или

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

▪ Множество программных моделей, различные способы разработки параллельных программ (языки, среды разработки, интерфейсы)

18

Page 19: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Сложность параллельного программирования

Алгоритм Программа (на языке C, C++, Java, Fortran, Ruby, Python)

Архитектура

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

Алгоритм в модели А Программа в

различных парадигмах(MPI, OpenMP, CUDA, TBB, OpenCL, Cilk)

Параллельное программирование

Алгоритм в модели B

Алгоритм в модели C

Архитектура А

Архитектура В

Архитектура С

19

Page 20: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Сложность параллельного программирования

Алгоритм в модели А Программа в

различных парадигмах(MPI, OpenMP, CUDA, TBB, OpenCL, Cilk)

Параллельное программирование

Алгоритм в модели B

Алгоритм в модели C

Архитектура А

Архитектура В

Архитектура С

▪ Алгоритм: не все задачи могут быть распараллелены на конкретной архитектуре

▪ Переносимость: поддержка одного языка/интерфейса на разных архитектурах (например, MPI или OpenCL)

▪ Алгоритмическая задача: обнаружить параллелизм

▪ Лингвистическая задача: выразить параллелизм

▪ Практическая задача: корректность, производительность

20

Page 21: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

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

▪ Это неизбежно: мультиядерные процессоры, графические ускорители и т.д.

▪ Интересно, познавательно и очень непросто▪ Одна из основных дициплин компьютерных наук

▪ ПВТ распространены повсеместно (конвейнеры, ILP, TLP, языки, операционные системы, программное обеспечение)

▪ Полезно: большие, очень сложные задачи, которые востребованы в мировой науке

▪ ...

21

Page 22: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Parallel и Concurrent

Процесс

Процесс

Процесс

Процесс

CPU

Ресурс

Память, мьютексы, семафоры,

устройства, ...Concurrent - координация доступа и использования общих ресурсов.

22

Page 23: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Parallel и Concurrent

Под-задача

Под-задача

Под-задача

CPU

Parallel computing - решение задачи путём разбиения её на подзадачи и решения этих подзадач на различных процессорах.

CPU

CPU

Задача

23

Page 24: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Анализ параллельных алгоритмов

24

Page 25: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

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

p - число процессоров, n - размер задачи.

T1(n) - время, необходимое одному процессору для решения задачи размера nTp(n) - время для решения p процессорами задачи размера n

χ = T1(n) / Tp(n)

- ускорение параллельных вычислений, определяет “выгоду” от распараллеливания задачи данного размера n

25

Page 26: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Пример

for (i = 0; i < n; i++) { a[i] = b[i] + c[i];}

Подзадачасумма n / p элементов

Подзадача сумма n / p элементов

Подзадача сумма n / p элементов

Задача:посчитать сумму двух n-элементных векторов

Идеальное распараллеливание:

▪ вычисления равномерно распределяются между p процессорами,

▪ нет накладных расходов

Ускорение:

χ = p

26

Page 27: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Идеальное распараллеливание

1

1

время

T1

2

p

3

...

Идеальное распараллеливание:

▪ вычисления равномерно распределяются между p процессорами,

▪ нет накладных расходов

Tp(n) = T1(n) / p

Ускорение:

χ = p

Tp(n)

27

Page 28: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Идеальное распараллеливание

1

1

время

T1

2

p

3

...

Идеальное распараллеливание:

▪ вычисления равномерно распределяются между p процессорами,

▪ нет накладных расходов

Tp(n) = T1(n) / p

Ускорение:

χ = p

На практике редко

Tp(n)

28

Page 29: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Распараллеливание на практике

1

1

время

T1

2

p

3

...

В реальном мире:

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

Tp(n) = max{T1, i (n)}

Ускорение:

χ ≤ p

Tp(n)T1, i(n)

29

Page 30: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Распараллеливание на практике

1

1

время

2

p

3

...

W(n) = ΣTi(n) - работа параллельного алгоритма - суммарное число инструкций

С(n) = p × Tp(n) - “цена” параллельного алгоритма: суммарное время, в течение которого p процессоров заняты

Tp(n)Ti(n)

С(n)

1 2 3 p W(n)

30

Page 31: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Закон Амдала

Пусть программа содержит часть r, которая может быть распараллелена идеально (ускорение равно p) и полностью последовательную часть s = 1 – r, которая вообще не может быть распараллелена.

Тогда ускорение, которое может быть получено на ВС из p процессоров:

χ = 1 / (s + r / p) = 1 / (s + (1 – s) / p)

31

Page 32: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Закон Амдала

Пусть программа содержит часть r, которая может быть распараллелена идеально (ускорение равно p) и полностью последовательную часть s = 1 - r, которая вообще не может быть распараллелена.

Тогда для каждого фиксированного n максимально допустимое ускорение: 1 / s.

Доказательство:T1(n) = (s + r) * T1(n)Tp(n) = s * T1(n) + r * T1(n) / p

χ = T1(n) / (s * T1(n) + r * T1(n) / p) = = 1 / (s + r / p) -> 1 / s для p -> ∞

32

Page 33: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Ускорение и закон Амдала: примеры

scanf(“%d”, &k);

for (i = 0; i < n; i++) { x[i] = y[i] * k;}

for (i = 0; i < n; i++) { printf(“x[i] = %d\n”, x[i]);}

33

Page 34: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Ускорение и закон Амдала: примеры

scanf(“%d”, &k);

for (i = 0; i < n; i++) { x[i] = y[i] * k;}

for (i = 0; i < n; i++) { printf(“x[i] = %d\n”, x[i]);}

T1(n) = 1 + n + n;Tp(n) = 1 + n / p + n;χ = (1 + n + n) / / (1 + n / p + n) = = 〈p ⟶ ∞〉= = (2n) / (n) = 2

По закону Амдала:

Последовательная часть:s ≈ 1 - 0.5 = 0.5χ = 2

34

Page 35: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Ускорение и закон Амдала: примеры

x = malloc(n * sizeof(int));

quicksort(x);

n = norm(x);

printf(“vector norm = %d”, m);

35

Page 36: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Ускорение и закон Амдала: примеры

x = malloc(n * sizeof(int));

quicksort(x);

n = norm(x);

printf(“vector norm = %d”, m);

T1(n) = 1 + nlogn + n + 1Tp(n) = 1 + logn + n + 1;χ = (nlogn + n) / (logn + n) = = (n(logn + 1)) / (logn + n)

36

Page 37: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Ускорение и закон Амдала: примеры

x = malloc(n * sizeof(int));for (;;) { for (i = 0; i < n; i++) { x[i] = func(x[i]); } if (x[0] < eps) // k итераций до условия break;}

37

Page 38: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Ускорение и закон Амдала: примеры

x = malloc(n * sizeof(int));for (;;) { for (i = 0; i < n; i++) { x[i] = func(x[i]); } if (x[0] < eps) // k итераций до условия break;}

T1(n) = 1 + k (1 + n) = 1 + k + knTp(n) = 1 + k + kn / p;χ = (k (1 + n)) / (k (1 + n / p)) = =〈p ⟶ ∞〉= k (1 + n) / k = 1 + n

38

Page 39: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Закон Густафсона - Барсиса

39

χ = s + (1 – s)p = p + (1 – p)ss – последовательная часть программыp – количество процессоров (потоков)

Аналог закона Амдала, учитывающий количество процессоров. Оценивает максимально достижимое ускорение параллельной программ в зависимости от числа потоков (процессоров).

Здесь ускорение показывает, насколько эффективным может быть распараллеливание при увеличении сложности задач.g = ts / (ts + tp / p), где ts – время последовательной части программы, tp – время части программы, которая может быть распараллелена

Page 40: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Эффективность параллельного алгоритма

Эффективность параллельного алгоритма - соотношение лучшего возможного времени параллельного алгоритма к реальному значению времени выполнения параллельного алгоритма.

Ep = (T1(n) / p) / Tp(n) = χ / p

▪ Ep ≤ 1, поскольку s ≤ p▪ Ep = Const ⇒ линейное ускорение

40

Page 41: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Масштабируемость

Параллельный алгоритм сильно масштабируется, если χ = Θ(p) (ускорение линейное, не зависит от n).

Параллельный алгоритм слабо масштабируется, если существует медленно растущая функция f(p), такая что для n = Ω(f(p)) функция Ep(n) остаётся постоянной.

41

Page 42: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Масштабируемость

x = malloc(n * sizeof(int));for (;;) { for (i = 0; i < n; i++) { x[i] = func(x[i]); } if (x[0] < eps) // k итераций до условия break;}

T1(n) = 1 + k + kn; Tp(n) = 1 + k + kn / p;Ep(n) = ((1 + k + kn) / p) / (1 + k + kn / p) = = (k / p + (kn) / p) / (k + kn / p) = = (1 / p + n / p) / (1 + n / p) = = (n / p) / (1 + n / p)

Алгоритм слабо масштабируется

42

Page 43: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Пропускная способность и латентность

43

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

▪ Латентность l – время выполнения отдельной операции.

▪ Пропуснкая способность b – скорость выполнения операций со структурой.

Page 44: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Особоенности архитектуры вычислительных систем с общей памятью

44

Page 45: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Архитектура вычислительных систем с общей памятью

▫ Многоядерные процессоры и многопроцессорные вычислительные системы (ВС).

▫ SMP/NUMA-системы.

▫ Аппаратная многопоточность (SMT, HyperTreading)

▫ Показатели эффективности ВС.

▫ Цели и задачи создания многопоточных программ

▫ Процессы и потоки45

Page 46: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Архитектура многопроцессорных вычислительных систем

ОдноядерныйпроцессорПараллелизм

уровня инструкций

Одноядерный процессорподдержкой аппаратной

многопоточности

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

Многопроцессорныесистемы

Параллелизм уровняпотоков

Многоядерныепроцессоры

Параллелизм уровняпотоков

Многоядерные процессорыс поддержкой аппаратной

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

Современныесистемы

Параллелизм уровняпотоков

1 2 3

4 5 6

Page 47: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Архитектура ядра процессора Intel 64

Логическийпроцессор

BackendВычислительное

ядро (Execution Engine)

Кэшпамять

▪ Логический процессор

представлен архитектурнымсостояниеми контроллером прерываний

▪ Архитектурное состояниевключает

❑ регистры общего назначения…

❑ сегментные регистры…

❑ управляющие регистры…

❑ регистрырегистры

❑ регистры

▪ Логический процессор этото что видит операционнаясистема

Page 48: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Архитектура ядра процессора Intel 64

▪ Логический процессориспользует ресурсывычислительного ядра

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

▪ это вычислительное ядро менеджерраспределяющий инструкциипо исполняющим устройствам

▪ реализует параллельное выполнение инструкций

Логическийпроцессор

BackendВычислительное

ядро (Execution Engine)

Кэшпамять

Page 49: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Параллелизм уровня инструкций (Instruction level parallelism – ILP)

▪ Архитектурные решения для обеспечения параллельноговыполнения инструкций▫ Суперскалярный конвейер исполняющие

модули конвейера присутствуют в нескольких экземплярах несколькомодулей

▫ Внеочередное исполнение командпереупорядочивание команд для максимально загрузки

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

▫ инструкции модули поддерживаютоперации над векторами инструкции

▫ архитектура процессор с широкимкомандным словом оперирует с инструкциями содержащими в себенесколько команд которые можно выполнять параллельно на

ЗАОМЦСТ Эльбрус 49

Page 50: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Intel Nehalem Core Pipeline

50

Page 51: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Intel Nehalem Core Pipeline

51

Page 52: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Intel Nehalem Core Pipeline

на каждом тактевыбираетиз кэша через

байт инструкций ипередает их напредекодирование в

определяетдлину инструкций ихпрефиксы и типыусловный безусловныйпереход …и передает информациюв

1 2

52

Page 53: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Intel Nehalem Core Pipeline

▪ преобразует инструкции в микрооперациисложные инструкции преобразуются в несколько микроопераций

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

для предотвращения их повторного декодирования слияниемикрооперацийдля увеличения пропускной способности и другие оптимизации

▪ Поток микроопераций передается в исполняющее ядро

3

53

Page 54: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Intel Nehalem Execution Core

54

Page 55: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Intel Nehalem Execution Core

выделяетдля поступающихмикроопераций блокив

привязываетмикрооперации к порту выдачи

переименовываетархитектурные регистры

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

4

55

Page 56: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Intel Nehalem Execution Core

▪ пул из микроопераций динамический планировщик▪ Если операнды микрооперации готовы она направляется на одно ихисполняющих устройств выполнение по готовности данных максимуммикроопераций такт портов

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

5

56

Page 57: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Intel Nehalem Execution Core

▪ хранит микрооперации сих состояниями в исходномпорядке

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

▪ Выполнение инструкциисчитается завершенным еслиа все её микрооперациивыполненыб все более ранние операциизавершены

6

57

Page 58: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Одновременная многопоточность (Simultaneous Multithreading)

▪ Одновременная многопоточность

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

▪ Потоки разделяют один суперскалярный конвейерпроцессора

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

Разделение ресурсов▪ Примеры реализации

❑ г г

❑ г

58

Page 59: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Intel Hyper-Threading Technology

Логическийпроцессор

Вычислительноеядро

Кеш память

Логическийпроцессор

▪ потока разделяютсуперскалярный конвейер

▪ Ускорение

▪❑ Регистры общего назначения

…❑ Сегментные регистры

…❑ Управляющие регистры

❑ регистрырегистры

❑ регистры

59

Page 60: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Многопроцессорные SMP-системы

▪ Процессоры системы имеют одинаковое время доступа кразделяемой памяти симметричный доступ

▪ Системная шина это узкое место ограничивающеемасштабируемость вычислительного узла

60

Page 61: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Многопроцессорные NUMA-системы (AMD)

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

▪ Процессоры сгруппированы в узлы со своей локальной памятью▪ Доступ к локальной памяти узла занимает меньше времени по сравнениюс временем доступом к памяти удаленных процессоров

▪ х процессорная система▪ Каждый процессор имеетинтегрированный контроллери несколько банков памяти

▪ Процессоры соединены шиной

системы на базе процессоров▪ Доступ к удаленной памятизанимает больше временидля на

Page 62: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Многопроцессорные NUMA-системы (Intel)

▪ х процессорнаясистема

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

▪ Процессоры соединенышиной

решения на базепроцессоров

62

Page 63: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Политика управления памяти NUMA-системы

▪ Политики управления памятью можно задаватьв настройках

▪ в системе присутствуетнесколько

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

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

63

Page 64: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Многоядерные процессоры (Multi-core processors)

Логический процессор

Вычислительное ядро

Кэшпамять

СЛогический процессор

Вычислительное ядро

Кэшпамять

▪ Процессорные ядра размещены на одном чипе▪ Ядра процессора могу разделять некоторые ресурсы

например кэш память▪ Многоядерный процессор реализует параллелизм уровня потоков

64

Page 65: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Многоядерные процессоры с поддержкой SMT

Логическийпроцессор

Вычислительное ядро

Кэшпамять

Логическийпроцессор

Вычислительное ядро

Кэшпамять

Логическийпроцессор

Логическийпроцессор

▪ Многоядерный процессор может поддерживать одновременную многопоточность

▪ Каждое ядро может выполнять несколько потоков на своем суперскалярномконвейере

▪ Операционная система представляет каждый поток как логический процессор65

Page 66: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Многоядерные процессоры с поддержкой SMT

Логическийпроцессор

Вычислительное ядро

Кэшпамять

Логическийпроцессор

Вычислительное ядро

Кэшпамять

Логическийпроцессор

Логическийпроцессор

▪ Операционная система видит логических процессора▪ Потоки и выполняются на суперскалярных конвейерах разных ядер▪ Задействован параллелизм уровня потоков и инструкций

66

Page 70: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Специализированные ускорители: Graphics Processing Unit

▪ графический процессорспециализированный многопроцессорный ускоритель с общей памятью

▪ Большая часть площади чипа занята элементарнымимодулями

▪ Устройство управления относительно простое по сравнениюс

70

Page 71: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

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

71

Page 72: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

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

▪ Как на чем разрабатывать программы для такогоколичествамногоядерных архитектур

▪ Как быть с переносимостью кода программ междуплатформами

▪ Как быть с переносимостью производительностипрограмм

▪ Все ли алгоритмы эффективно распараллеливаются

72

Page 73: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Моделирование ВС с общей памятью

73

Page 74: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Наивная модель ВС с общей памятью

Память

ЭП ЭП ЭП ЭП

Процессоры соединены непосредственно с памятью, все взаимодействия через чтение/запись из памяти

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

74

Page 75: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Наивная модель ВС с общей памятью

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

память▪ методы для разделения памяти между процессами

Память

ЭП ЭП ЭП ЭП

75

Page 76: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Реальные архитектуры с общей памятью

Память

ЭП ЭП ЭПЭП

кэш

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

76

Page 77: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Реальные архитектуры с общей памятью

Память

ЭП ЭП ЭПЭП

кэш

Тип памяти Ёмкость Время доступа

Основная память гигабайты > 100 циклов

Кэш килобайты, мегабайты 1-20 циклов

Регистры 0-1 циклов

77

Page 78: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Многоуровневная система кэша

Память

ЭП ЭП ЭПЭП

кэш

кэш

Д И

Уровень 3

Уровень 2

Уровень 1

2-3 уровня + специализированные кэши, TLB, кэш инструкций и т.д.78

Page 79: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

NUMA-системы

Память

ЭП ЭП ЭПЭП

кэш

кэш

Д И

Уровень 3

Уровень 2

Уровень 1

Кэш решает проблему “узкого места”. При этом изменения в кэше могут реально применяться в произвольном порядке.

Память

79

Page 80: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Абстракция памяти

Однопроцессорная ЭВМ: система памяти и процессор позволяют обеспечить абстракцию памяти.

Память

ЭП ЭП ЭПЭП

кэш

кэш

Д И

Уровень 3

Уровень 2

Уровень 1

ПамятьП

ЭП

кэш

ВС с общей памятью: трудно обеспечить абстракцию единой однородной памяти.

80

Page 81: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Абстракция памяти - проблемы

Память

ЭП ЭП ЭПЭП

кэш

кэш

Д И

Уровень 3

Уровень 2

Уровень 1

Память

▪ Что случится, если один и тот же адрес находится в разных кэшах?

▪ Что происходит при изменении записи в один из кэшей одним из процессоров?

▪ Несколько процессоров записывают или читают из одного адреса?

81

Page 82: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Абстракция памяти - проблемы

Память

ЭП ЭП ЭПЭП

кэш

кэш

Д И

Уровень 3

Уровень 2

Уровень 1

Память

▪ Что случится, если один и тот же адрес находится в разных кэшах?

▪ Что происходит при изменении записи в один из кэшей одним из процессоров?

▪ Несколько процессоров записывают или читают из одного адреса?

Проблема когерентности кэша

82

Page 83: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Абстракция памяти - проблемы

ЭП ЭП ЭПЭП

кэш

Д И

Память

Д И Д И Д И

кэш

83

Page 84: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Процессы и потоки операционной системы

ИнструкцииИнициализированныеданные

Исполняемыйфайл наносителеинформации

ИнструкцииИнициализированныеданные

Неинициализированныеданные

Куча

Данные библиотек Инструкциибиблиотек

Поток

▪ Процесс

запущенныйисполняемыйфайл образ

▪ После запускапроцесс владеетодним потокомвыполнения

84

Page 85: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Многопоточный процесс

ИнструкцииИнициализированныеданные

Неинициализированныеданные

Куча

Данные библиотек Инструкции библиотек

Поток Поток Поток Поток Поток Поток

▪ Поток тред нить независимый поток инструкций выполнение которыхпланируется ОС

▪ Поток наименьшая единица которую можно планировать независимо

85

Page 86: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Многопоточный процесс

ИнструкцииИнициализированныеданные

Неинициализированныеданные

Куча

Данные библиотек Инструкции библиотек

Поток Поток Поток Поток Поток Поток

▪ Каждый поток имеет свой стек и контекст память для хранениязначения архитектурных регистров при переключении контекстов

операционной системой

▪ Куча процесса инструкции статические данные инициализированныеявляются общими для всех потоков

86

Page 87: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Concurrency ≠ Parallelism

февраля г

▪ одновременностьдва и более потоков выполняютсяразделяя одно процессорное ядро

▪ Операционная система реализуетрежим разделения времени ядрапроцессора

▪ Ускорение вычислений отсутствует

▪ Зачем

▪ Обеспечение отзывчивостиинтерфейса совмещениеввода вывода и вычислений

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

▪ Вычисления выполняютсябыстрее

87

Page 88: ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Вычислительные

Concurrency ≠ Parallelism

Суперскалярный процессор

Мультипроцессор Hyperthreading

88