Сообщение о преступл. в Шевченковский ОМ(ПетровАК-Малютенко АЮ)
Игорь Одинцов Группа компаний...
Transcript of Игорь Одинцов Группа компаний...
![Page 1: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/1.jpg)
Параллельное программирование в метафорах: борьба светлых и тёмных сил
Игорь Одинцов
Группа компаний РСК
![Page 2: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/2.jpg)
• Производительность
• Результативность
• Нужность
2
• Ограничения
• Проблемы
• Сложности
![Page 3: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/3.jpg)
• Метафора – косвенное сообщение в
виде истории или образного выражения,
использующего сравнение
• Метафоры помогают найти наиболее
подходящую аналогию, то есть
соединить новый опыт с уже
имеющимся
• Используйте метафору, чтобы
объяснить что-то «бабушке» (или
школьнику!)3
Вспоминаем. Что такое метафора?
![Page 4: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/4.jpg)
Упражнение №1: Что такое суперкомпьютер?
4
![Page 5: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/5.jpg)
Однажды мне был задан вопрос:
• «Зачем Intel придумал многоядерные процессоры и параллелизм?»(Подразумевая, что без них было просто и хорошо)
5
![Page 6: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/6.jpg)
Моно Би Поли
Однородная би-поли-система
Бисистема со сдвинутыми характерис-
тиками
Разнородная би-поли-ситема
Инверсная би-поли-ситема
Частично свёрнутая
Би-поли-система
Полностью свёрнутая
Би-поли-система
К новой бисистеме
К новой полисистеме
Законы развития технических систем: линия моно-би-поли
![Page 7: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/7.jpg)
Производительн
ость
GHz Era
Время
Многоядерность
Многоядерные процессоры нуждаются в параллельных приложениях
7
4,77 МГц 3 ГГц
х86 в 600 раз с 1978 года
![Page 8: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/8.jpg)
Параллелизм: типы
• Процессы (нити) называются параллельными, если они выполняются одновременно. Они могут быть либо независимыми, либо взаимодействующими и нуждающимися в синхронизации
8
Процессорили ядро
Процессили нить
Псевдопараллелизм
Истинный параллелизм
Распределенный параллелизм
![Page 9: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/9.jpg)
--
Параллелизм: взаимодействие
Потоки Кластеры
9
-Кластеры -
КластерыГриды
![Page 10: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/10.jpg)
-
Параллелизм:аппаратный уровень
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 · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/11.jpg)
Параллелизм: независимый ис коммуникацией
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 · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/12.jpg)
Независимый параллелизм
В геометрии параллельные прямые не пересекаются:
В программировании независимые параллельные задачи не взаимодействуют
Pablo Halpern, 2014 (CC BY 4.0)
![Page 13: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/13.jpg)
Если Вы собираетесь вспахать и обработать поле, что Вы
предпочтете?
Двух сильных
быков
(высказывание Seymour Cray)
Slide courtesy Dr. Gerhard Wellein, RRZE
…или 10’240’560 муравьев?
Параллелизм: разновидности задач
...или 1’024 курицы
![Page 14: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/14.jpg)
Ядра:немного мощных vs. много простых
Десятки ядер
Высокая частота
Супер-современная микро-архитектура
Сотни ядер
Низкая частота
Упрощенная микро-архитектура
![Page 15: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/15.jpg)
Упражнение №2: Путь проблемно-ориентированного программирования: от задач к железу
Обл1) Сейсморазведка Обл2) Гидродинамика Обл3) Биофизика
Арх1) Intel Xeon Арх2) Intel Xeon Phi Арх3) Эльбрус
![Page 16: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/16.jpg)
Проблемно-ориентированное программирование: от задач к железу
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 · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/17.jpg)
Проблемно-ориентированное программирование: от задач к железу(о важности библиотек!)
17
![Page 18: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/18.jpg)
Параллелизм – норма жизни
• Мультиядерные и многоядерные процессоры
• Степень аппаратного параллелизмапродолжает расти
• Требуется явный параллелизм на уровне софта
![Page 19: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/19.jpg)
Моделирование в газодинамике
![Page 20: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/20.jpg)
Моделирование в гидродинамике
![Page 21: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/21.jpg)
Механизм «одевания» виртуального платья на манекен
21
![Page 22: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/22.jpg)
Закон Амдала
• «В случае, когда задача разделяется на несколько частей, суммарное время её выполнения на параллельной системе не может быть меньше времени выполнения самого длинного фрагмента»
• Закон Амдала показывает, что прирост эффективности вычислений зависит от алгоритма задачи и ограничен сверху для любой задачи
• Не для всякой задачи имеет смысл наращивание числа процессоров в вычислительной системе
![Page 23: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/23.jpg)
23
Вечная борьба за ресурсы: аппаратные и программные («и пряников, кстати, всегда не хватает на всех» (с))
Шина
Процессоры Память
Внешнееустройство
Внешнееустройство
Внешнееустройство
ПроцессыВиртуальная
память
Средствакоммуникации
Файлы
![Page 24: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/24.jpg)
Упражнение №3: Почему программы зависают?
• Борьба за ресурсы!Пример: круговое ожидание
24
![Page 25: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/25.jpg)
Почему я перестал верить в сказки…
25
А где находится подсистема
коммуникации и синхронизации
птичек и др.?
![Page 26: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/26.jpg)
Упражнение №4: И всё-таки - легко ли писать параллельные программы?
• Пример: счетчик
26
![Page 27: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/27.jpg)
Кстати, давно придуманы красивые решения, например – семафоры
• Семафор — это защищенная переменная, значение которой можно запрашивать и менять только при помощи специальных операций 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 · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/28.jpg)
Параллелизм – это сложно
«Кто виноват?»
Слишком низкий уровень абстракции
Отсутствие необходимых знаний и опыта
«Что делать?»
Нанять эксперта в разработке параллельных программ
Стать таким экспертом
Использовать другие подходы к параллелизму, например – библиотеки параллельных примитивов
Некоторые концепции действительно сложны
![Page 29: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/29.jpg)
Так не должно быть!(это нелепо и неэффективно)
![Page 30: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/30.jpg)
А вот так – не идеально, но гораздо лучше!
30
Упражнение №5 (более сложное)Определите OpenMP и MPI метафорически на примере дорожного движения
![Page 31: Игорь Одинцов Группа компаний РСКrussianscdays.org/files/teachers16/3_RSD_2016_Odintsov.pdf · •Метафора–косвенное сообщение](https://reader035.fdocument.pub/reader035/viewer/2022070621/5e33b9e76d9a3835e235e14d/html5/thumbnails/31.jpg)
Спасибо!