Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
43 слайда
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
3.43 MB
Просмотров:
70
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Шаблоны параллельного](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img0.jpg)
Содержание слайда: Шаблоны параллельного проектирования
№2 слайд![Этапы разработки параллельной](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img1.jpg)
Содержание слайда: Этапы разработки параллельной программы
№3 слайд![Поиск параллельности Нужно](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img2.jpg)
Содержание слайда: Поиск параллельности (1/4)
Нужно определить участки программы, которые можно выполнять параллельно
Задачи должны иметь начало и окончание
Количество задач может меняться
Задач должно достаточно для получения ускорения (одна задача это не очень хорошо)
Работает закон Амдала
№4 слайд![Выбор шаблона реализации](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img3.jpg)
Содержание слайда: Выбор шаблона реализации (2/4)
Проектирование структуры параллельной программы
Закладывается возможность масштабирования
Выбор инструментов реализации
Отдельно задачи, отдельно исполнители
№5 слайд![Реализация алгоритма](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img4.jpg)
Содержание слайда: Реализация алгоритма (3/4)
Синхронизация
Взаимодействие
№6 слайд![Выполнение Общие ресурсы Гонки](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img5.jpg)
Содержание слайда: Выполнение (4/4)
Общие ресурсы
Гонки
№7 слайд![Шаблоны параллельного](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img6.jpg)
Содержание слайда: Шаблоны параллельного программирования
1977 вышла книга «Язык шаблонов. Города. Здания. Сооружения.»
№8 слайд![Шаблоны в строительстве](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img7.jpg)
Содержание слайда: Шаблоны в строительстве
№9 слайд![Шаблоны в строительстве](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img8.jpg)
Содержание слайда: Шаблоны в строительстве
№10 слайд![Шаблоны в программировании](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img9.jpg)
Содержание слайда: Шаблоны в программировании
Adapter
Builder
Decorator
Facade
Flyweight
…
№11 слайд![Patterns for parallel](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img10.jpg)
Содержание слайда: Patterns for parallel programming
Patterns for Parallel
Programming. Mattson,
Sanders, and Massingill
(2005).
№12 слайд![Начало книги](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img11.jpg)
Содержание слайда: Начало книги
№13 слайд![Что параллелить? Вот алгоритм](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img12.jpg)
Содержание слайда: Что параллелить?
Вот алгоритм – что можно вычислить параллельно?
№14 слайд![Параллелизм задач](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img13.jpg)
Содержание слайда: Параллелизм задач
№15 слайд![Параллельные задачи](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img14.jpg)
Содержание слайда: Параллельные задачи
№16 слайд![Гибкость Не привязывайтесь к](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img15.jpg)
Содержание слайда: Гибкость (1/3)
Не привязывайтесь к железу
№17 слайд![Гибкость Задачи не должны](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img16.jpg)
Содержание слайда: Гибкость (2/3)
Задачи не должны решать какие данные им обрабатывать
№18 слайд![Гибкость Задачи должны уметь](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img17.jpg)
Содержание слайда: Гибкость (3/3)
Задачи должны уметь считать разные объемы данных
№19 слайд![Эффективность Задачи должны](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img18.jpg)
Содержание слайда: Эффективность (1/2)
Задачи должны эффективно использовать ресурсы
№20 слайд![Эффективность Создавайте](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img19.jpg)
Содержание слайда: Эффективность (2/2)
Создавайте независимые задачи
№21 слайд![Простота Понятность](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img20.jpg)
Содержание слайда: Простота (1/1)
Понятность
Читаемость
Шаблоны ООП
Стили кодирования
Тестирование
№22 слайд![Шаблоны параллелизма по](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img21.jpg)
Содержание слайда: Шаблоны параллелизма по задачам
№23 слайд![Task parallelism Примеры Ray](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img22.jpg)
Содержание слайда: Task parallelism (1/2)
Примеры
Ray tracing - вычисление каждого луча независимо по данным и последовательности
Молекулярная физика - движение несвязанных частиц, слабое взаимодействие
Основные особенности
Задачи связаны с определенными циклами
Список задач в основном известен в начале вычисления
Не обязательно все задачи должны быть выполнены для получения части конечного решения
№24 слайд![Task parallelism Используйте](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img23.jpg)
Содержание слайда: Task parallelism (2/2)
Используйте очереди:
RabbitMQ
MSMQ
Amazon SQS
IronMQ
StormMQ
Windows Azure Queues
№25 слайд![Divide and Conquer Задачи](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img24.jpg)
Содержание слайда: Divide and Conquer
Задачи выполняют разные действия
Важна последовательность задач
№26 слайд![Параллелизм данных](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img25.jpg)
Содержание слайда: Параллелизм данных
№27 слайд![Параллелизм данных Основные](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img26.jpg)
Содержание слайда: Параллелизм данных
Основные вычисления выполняются на большом объеме данных;
Одни и те же операции применяются в разным частям данных.
№28 слайд![Параллелизм данных Гибкость](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img27.jpg)
Содержание слайда: Параллелизм данных
Гибкость
Данные должны хорошо дробиться, чтобы поддерживать высокий уровень параллелизма
Эффективность
Размер данных должен обеспечивать достаточное количество вычислений
Простота
Сложные структуры данных сложно отлаживать и поддерживать
№29 слайд![Геометрическое разбиение](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img28.jpg)
Содержание слайда: Геометрическое разбиение
Хорошо работает на таких типах данных как:
Массив
Список
Справочник
№30 слайд![Способы геометрического](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img29.jpg)
Содержание слайда: Способы геометрического разбиения
№31 слайд![Рекурсивное разбиение Хорошо](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img30.jpg)
Содержание слайда: Рекурсивное разбиение
Хорошо работает на таких типах данных как:
Массив
Список
Деревья
Графы
№32 слайд![Рекурсивное разбиение](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img31.jpg)
Содержание слайда: Рекурсивное разбиение
№33 слайд![Стратегия выполнения](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img32.jpg)
Содержание слайда: Стратегия выполнения
№34 слайд![Какой стратегии](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img33.jpg)
Содержание слайда: Какой стратегии придерживаться
Окна есть, работники есть..
- Чо делать то?
№35 слайд![SPMD Single program multiple](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img34.jpg)
Содержание слайда: SPMD
Single program multiple data
Каждый процесс выполняет одну задачу, но со своим набором данных
№36 слайд![Master Worker Мастер создаёт](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img35.jpg)
Содержание слайда: Master/Worker (1/2)
Мастер
создаёт пул задач и исполнителей. Следит, чтобы исполнители работали, а задачи создавались.
№37 слайд![Master Worker Исполнитель](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img36.jpg)
Содержание слайда: Master/Worker (2/2)
Исполнитель
Получает задачу из очереди задач
Выполняет задачу
Помечает задачу как исполненную
Идемпотентные задачи рулят
№38 слайд![Fork Join Похож на Master](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img37.jpg)
Содержание слайда: Fork/Join
Похож на Master/Worker
SPMD
Более легковесная версия
Применяется к потокам, а не процессам
№39 слайд![Loop parallelism Легкий](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img38.jpg)
Содержание слайда: Loop parallelism
Легкий способ ускорения линейной программы
Используйте профилировщик
Есть готовые решения - OpenMP
№40 слайд![Pipeline](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img39.jpg)
Содержание слайда: Pipeline
№41 слайд![Event based Использует другие](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img40.jpg)
Содержание слайда: Event based
Использует другие шаблоны
Примитивы синхронизации – Event
Сложно отлаживать
Используйте логирование
№42 слайд![Стратегии и шаблоны](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img41.jpg)
Содержание слайда: Стратегии и шаблоны
№43 слайд![Стратегии и реализация](/documents_6/db48c0e377b17752ddc4a5bccffc8057/img42.jpg)
Содержание слайда: Стратегии и реализация