Модель компьютера
Модель параллельного компьютера
Модель последовательного программирования
Модель параллельного программирования
Критерии выбора модели
Модели параллельного программирования
Модель «задача/канал»
Модель передачи сообщений
Модель разделяемой памяти
Модель параллелизма данных
Обобщенная схема моделей
Параллелизм данных
Параллелизм данных: основные операции
Параллелизм данных: требования
Параллелизм задач
Схема построения параллельного алгоритма
1.60M
Category: programmingprogramming

Модели параллельного программирования. Лекция 2

1.

2. Модель компьютера

Свойства модели:
Простота
Hello
3.5
26
CPU
Memory
Рис. 1. Схема «read & write»
Реалистичность
Последовательный
характер
выполнения
программ

3. Модель параллельного компьютера

Hello
3.5
26
CPU
Memory
Рис. 2. Схема «параллельного компьютера»
Основные свойства:
Параллельность
Масштабируемость
Локальность (read/write vs send/recv)

4. Модель последовательного программирования

Модульность
Процедуры
Функции
Структуры данных
Классы
Объектно-ориентированные конструкции
т.п.

5. Модель параллельного программирования

Параллелизм (concurrency)
Масштабируемость (scalability)
Локальность (locality)
Модульность (modularity)

6. Критерии выбора модели

Свойства механизмов абстракции:
масштабируемость;
модульность;
простота;
соответствие архитектуре.

7. Модели параллельного программирования

Модель «задача/канал»
Модель передачи сообщений
Модель разделяемой общей памяти
Модели, использующие параллелизм
данных
Параллелизм задач / Параллелизм данных

8. Модель «задача/канал»

Свойства:
Эффективность
Независимость
отображения
Модульность
Рис. 3. Схема модели
Детерминизм
чтение / запись
послать сообщения на outports
получить сообщения из inports
создать новые задачи
завершить выполнение

9. Модель передачи сообщений

Свойства:
Эффективность
Независимость
отображения
Модульность
Рис. 4. Схема модели
Детерминизм
чтение / запись
послать сообщения to task1
получить сообщения from task1
создать новые задачи
завершить выполнение

10. Модель разделяемой памяти

Свойства:
Независимость
отображения
Модульность
Процессор
Процессор
Процессор
Один или
несколько
уровней
кэш-памяти
Один или
несколько
уровней
кэш-памяти
Один или
несколько
уровней
кэш-памяти
чтение / запись
завершить выполнение
Основная память
Подсистема
ввода/вывода
Рис. 5. Схема модели

11. Модель параллелизма данных

Поток A
Поток N
Рис. 6. Схема модели
Свойства:
Эффективность
Модульность
чтение / запись
завершить выполнение

12. Обобщенная схема моделей

Модель параллелизма по данным
Последовательная программа
Компилятор
+
Данные
Данные
Данные
Директивы распределения данных
Модель передачи сообщений
Библиотека передачи сообщений
процесс
процесс
процесс
Данные
Данные
Данные
Модель с общей памятью
Библиотека синхронизации
процесс
процесс
Данные
Рис. 7. Обобщенная схема
процесс

13. Параллелизм данных

(SIMD-модель):
одна программа;
глобальное пространство имен;
слабая синхронизация;
низкая вовлеченность программиста;
векторизация;
распараллеливание во время трансляции.

14. Параллелизм данных: основные операции

Управление данными (равномерность загрузки)
Операции над массивами (повышение эффективности)
Условные операции
Операции приведения
Операции сдвига
Операции сканирования
Операции пересылки данных
FORTRAN+, MPP FORTRAN , HPF

15. Параллелизм данных: требования

Поддержка на уровне транслятора:
препроцессоры;
предтрансляторы;
распараллеливающие трансляторы.

16. Параллелизм задач

Параллелизм задач(MIMD-модель):
несколько программ;
разделенное пространство имен;
высокая синхронизация;
высокая вовлеченность программиста;
высокая трудоемкость;
распараллеливание до трансляции.

17. Схема построения параллельного алгоритма

Декомпозиция
Partitioning
Взаимодействие
Communication
Интеграция
Agglomeration
Отображение
Mapping
Рис. 8. Схема решения сложных задач
English     Русский Rules