31
Параллельное программирование в метафорах: борьба светлых и тёмных сил Игорь Одинцов Группа компаний РСК

Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Параллельное программирование в метафорах: борьба светлых и тёмных сил

Игорь Одинцов

Группа компаний РСК

Page 2: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

• Производительность

• Результативность

• Нужность

2

• Ограничения

• Проблемы

• Сложности

Page 3: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

• Метафора – косвенное сообщение в

виде истории или образного выражения,

использующего сравнение

• Метафоры помогают найти наиболее

подходящую аналогию, то есть

соединить новый опыт с уже

имеющимся

• Используйте метафору, чтобы

объяснить что-то «бабушке» (или

школьнику!)3

Вспоминаем. Что такое метафора?

Page 4: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Упражнение №1: Что такое суперкомпьютер?

4

Page 5: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Однажды мне был задан вопрос:

• «Зачем Intel придумал многоядерные процессоры и параллелизм?»(Подразумевая, что без них было просто и хорошо)

5

Page 6: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Моно Би Поли

Однородная би-поли-система

Бисистема со сдвинутыми характерис-

тиками

Разнородная би-поли-ситема

Инверсная би-поли-ситема

Частично свёрнутая

Би-поли-система

Полностью свёрнутая

Би-поли-система

К новой бисистеме

К новой полисистеме

Законы развития технических систем: линия моно-би-поли

Page 7: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Производительн

ость

GHz Era

Время

Многоядерность

Многоядерные процессоры нуждаются в параллельных приложениях

7

4,77 МГц 3 ГГц

х86 в 600 раз с 1978 года

Page 8: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Параллелизм: типы

• Процессы (нити) называются параллельными, если они выполняются одновременно. Они могут быть либо независимыми, либо взаимодействующими и нуждающимися в синхронизации

8

Процессорили ядро

Процессили нить

Псевдопараллелизм

Истинный параллелизм

Распределенный параллелизм

Page 9: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

--

Параллелизм: взаимодействие

Потоки Кластеры

9

-Кластеры -

КластерыГриды

Page 10: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

-

Параллелизм:аппаратный уровень

128b

512b

256b

-Векторизация

VLIW

10

SP :

A

R1

*Q

CQIP :

R1

A

*P

SP = Точка ответвления (когда)

CQIP = Контрольная квази-независимая точка (где)

Участок предвычислений• Отклоняются маловероятные

ветвления

• Вычисляются входные

спекулятивные величины

Упреждающий

потокПроверка

R1

A

*P

Ди

на

ми

чес

ки

й п

ото

к к

ом

ан

д

SP :

A

R1

*Q

CQIP :

R1

A

*P

SP = Точка ответвления (когда)

CQIP = Контрольная квази-независимая точка (где)

Участок предвычислений• Отклоняются маловероятные

ветвления

• Вычисляются входные

спекулятивные величины

Упреждающий

потокПроверка

R1

A

*P

Ди

на

ми

чес

ки

й п

ото

к к

ом

ан

д

Page 11: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Параллелизм: независимый ис коммуникацией

Photo credit JJ Harrison (CC) BY-SA 3.0

Photo credit André Zehetbauer (CC) BY-SA 2.0

Параллелизм с коммуникацией

Параллелизм независимый

Page 12: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Независимый параллелизм

В геометрии параллельные прямые не пересекаются:

В программировании независимые параллельные задачи не взаимодействуют

Pablo Halpern, 2014 (CC BY 4.0)

Page 13: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Если Вы собираетесь вспахать и обработать поле, что Вы

предпочтете?

Двух сильных

быков

(высказывание Seymour Cray)

Slide courtesy Dr. Gerhard Wellein, RRZE

…или 10’240’560 муравьев?

Параллелизм: разновидности задач

...или 1’024 курицы

Page 14: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Ядра:немного мощных vs. много простых

Десятки ядер

Высокая частота

Супер-современная микро-архитектура

Сотни ядер

Низкая частота

Упрощенная микро-архитектура

Page 15: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Упражнение №2: Путь проблемно-ориентированного программирования: от задач к железу

Обл1) Сейсморазведка Обл2) Гидродинамика Обл3) Биофизика

Арх1) Intel Xeon Арх2) Intel Xeon Phi Арх3) Эльбрус

Page 16: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Проблемно-ориентированное программирование: от задач к железу

1.1. Предметные области и задачи

1.2. Вычислительные модели

2.1. Методики управления вычислениями2.2. Методики управления данными

2.3. Языки: • Моделирования, Программирования, Библиотек, Ранее

написанной функциональности, Оптимизации, Распараллеливания, …

2.4. Инструменты: • Среды разработчика, • Среды исполнения, • Оптимизации,• Распараллеливания,• Системное ПО• …

3. Вычислительные архитектуры (платформы и коммуникации)• ядра-процессоры, память-СХД, коммуникации-компьютерные шины, узлы-кластера, …

4. Решение: • производительность• энергоэффективность• стоимость

Обл1) Сейсморазведка Обл2) Гидродинамика Обл3) Биофизика

Арх1) Intel Xeon Арх2) Intel Xeon Phi Арх3) Эльбрус

Page 17: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Проблемно-ориентированное программирование: от задач к железу(о важности библиотек!)

17

Page 18: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Параллелизм – норма жизни

• Мультиядерные и многоядерные процессоры

• Степень аппаратного параллелизмапродолжает расти

• Требуется явный параллелизм на уровне софта

Page 19: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Моделирование в газодинамике

Page 20: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Моделирование в гидродинамике

Page 21: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Механизм «одевания» виртуального платья на манекен

21

Page 22: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Закон Амдала

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

• Закон Амдала показывает, что прирост эффективности вычислений зависит от алгоритма задачи и ограничен сверху для любой задачи

• Не для всякой задачи имеет смысл наращивание числа процессоров в вычислительной системе

Page 23: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

23

Вечная борьба за ресурсы: аппаратные и программные («и пряников, кстати, всегда не хватает на всех» (с))

Шина

Процессоры Память

Внешнееустройство

Внешнееустройство

Внешнееустройство

ПроцессыВиртуальная

память

Средствакоммуникации

Файлы

Page 24: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Упражнение №3: Почему программы зависают?

• Борьба за ресурсы!Пример: круговое ожидание

24

Page 25: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

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

25

А где находится подсистема

коммуникации и синхронизации

птичек и др.?

Page 26: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Упражнение №4: И всё-таки - легко ли писать параллельные программы?

• Пример: счетчик

26

Page 27: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Кстати, давно придуманы красивые решения, например – семафоры

• Семафор — это защищенная переменная, значение которой можно запрашивать и менять только при помощи специальных операций P и V и при инициализации

• Концепция семафоров была предложена Дэйкстрой в начале 60-х годов XX века

27

Value= 210

P(S):if ( S>0) then

S:=S-1else

ожидать_в_очереди(S)

V(S):if ( есть_процессы_в_очереди(S) ) then

одному_продолжить (S)else

S:=S+1

Page 28: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Параллелизм – это сложно

«Кто виноват?»

Слишком низкий уровень абстракции

Отсутствие необходимых знаний и опыта

«Что делать?»

Нанять эксперта в разработке параллельных программ

Стать таким экспертом

Использовать другие подходы к параллелизму, например – библиотеки параллельных примитивов

Некоторые концепции действительно сложны

Page 29: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Так не должно быть!(это нелепо и неэффективно)

Page 30: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

А вот так – не идеально, но гораздо лучше!

30

Упражнение №5 (более сложное)Определите OpenMP и MPI метафорически на примере дорожного движения

Page 31: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение

Спасибо!