Технология Фрагментированного Программирования

Содержание

Слайд 2

ФП – технология параллельного программирования

Вопрос: зачем нужна ещё одна технология параллельного программирования?
Ответ:

ФП – технология параллельного программирования Вопрос: зачем нужна ещё одна технология параллельного
Существующие технологии не справляются со своей задачей

Слайд 3

Что мы хотим от технологии ПП?

Хотим писать программы с минимумом усилий, а

Что мы хотим от технологии ПП? Хотим писать программы с минимумом усилий,
в результате получать эффективную программу
Такого не бывает!

Слайд 4

Синтез программ

Идея: синтезировать программу из готовых программ
Вопрос: почему до сих пор никто

Синтез программ Идея: синтезировать программу из готовых программ Вопрос: почему до сих
такого не сделал?
Ответ: программы плохо совместимы друг с другом!

Слайд 5

Плохая совместимость программ

Вопрос: Что делать?

Различные задачи

Различные архитектуры

Плохая совместимость программ Вопрос: Что делать? Различные задачи Различные архитектуры

Слайд 6

Разделение обязанностей

Различные задачи

Различные архитектуры

Разделение обязанностей Различные задачи Различные архитектуры

Слайд 7

Представление алгоритма
Явный параллелизм
Структура данных и вычислений
Гибкая параметризация
Возможность сборки
Использование обычных подпрограмм
Рекомендации по способу

Представление алгоритма Явный параллелизм Структура данных и вычислений Гибкая параметризация Возможность сборки
исполнения

Задачи Исполнительной Системы
Настройка на аппаратные ресурсы
Управление вычислениями и коммуникациями
Динамическая балансировка загрузки
Run-time оптимизация

Слайд 8

Исполнительная система

Исполнительная система

Фрагментированная программа

Обычная параллельная программа (MPI и т.п.)

Исполнительная система Исполнительная система Фрагментированная программа Обычная параллельная программа (MPI и т.п.)

Слайд 9

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

Входные данные

Выходные данные

Программа

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

Слайд 10

Декомпозиция вычислений

Входные данные

Выходные данные

Программа

Декомпозиция вычислений Входные данные Выходные данные Программа

Слайд 11

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

Входные данные

Выходные данные

Программы

Параллельное исполнение на мультипроцессоре Входные данные Выходные данные Программы

Слайд 12

Синхронизация потоков исполнения

Входные данные

Выходные данные

Программы

Синхронизация потоков исполнения Входные данные Выходные данные Программы

Слайд 13

Синхронизация потоков исполнения

Входные данные

Выходные данные

Программы
+
Код синхронизации

Синхронизация потоков исполнения Входные данные Выходные данные Программы + Код синхронизации

Слайд 14

Декомпозиция данных

Входные данные

Выходные данные

Программы
+
Код синхронизации

Декомпозиция данных Входные данные Выходные данные Программы + Код синхронизации

Слайд 15

Дополнительные данные и код работы с ними

Входные данные

Выходные данные

Программы
Код синхронизации
Код работы с

Дополнительные данные и код работы с ними Входные данные Выходные данные Программы
данными

Слайд 16

Динамическая передача данных

Входные данные

Выходные данные

Программы
Код синхронизации
Код работы с данными
Код передачи данных

Динамическая передача данных Входные данные Выходные данные Программы Код синхронизации Код работы

Слайд 17

Динамическая балансировка нагрузки

Входные данные

Выходные данные

Программы
Код синхронизации
Код работы с данными
Код передачи данных
Код балансировки

Динамическая балансировка нагрузки Входные данные Выходные данные Программы Код синхронизации Код работы

Слайд 18

Накладные расходы в параллельных задачах

Накладные расходы в параллельных задачах

Слайд 19

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

Входные данные

Выходные данные

Программа

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

Слайд 20

Фрагментированная программа

Фрагментированные
входные данные

Фрагментированные выходные данные

Фрагментированная Программа и промежуточные данные

Фрагментированная программа Фрагментированные входные данные Фрагментированные выходные данные Фрагментированная Программа и промежуточные данные

Слайд 21

Сборка программы из фрагментов

Программа собирается из готовых фрагментов одним из допустимых способов

Сборка программы из фрагментов Программа собирается из готовых фрагментов одним из допустимых способов

Слайд 22

Фрагментированная программа в процессе исполнения

Фрагменты, готовые к вычислениям

Фрагменты, не готовые к вычислениям

Фрагментированная программа в процессе исполнения Фрагменты, готовые к вычислениям Фрагменты, не готовые к вычислениям

Слайд 23

Фрагментированная программа в процессе исполнения

Выполненные фрагменты

Вычисленные значения

Фрагменты, не готовые к вычислениям

Фрагменты, готовые

Фрагментированная программа в процессе исполнения Выполненные фрагменты Вычисленные значения Фрагменты, не готовые
к вычислениям

Слайд 24

Фрагментированная программа в процессе исполнения

Выполненные фрагменты

Вычисленные значения

Ненужные более данные

Фрагменты, не готовые к

Фрагментированная программа в процессе исполнения Выполненные фрагменты Вычисленные значения Ненужные более данные
вычислениям

Фрагменты, готовые к вычислениям

Слайд 25

Исполнительная система

Исполнительная система

Слайд 26

Последовательная ИС

Последовательная ИС

Слайд 27

Мультипроцессорная ИС

Слой многопоточной обработки

Мультипроцессорная ИС Слой многопоточной обработки

Слайд 28

Мультикомпьютерная ИС

Мультикомпьютерная ИС

Слайд 29

Балансировка нагрузки

Балансировка нагрузки

Слайд 30

Особенности фрагментированного программирования

Явный параллелизм
Исполнительная система
Планировка вычислений
Балансировка нагрузки
Коммуникации на фоне счета

Накопление параллельных решений
Высокоуровневое

Особенности фрагментированного программирования Явный параллелизм Исполнительная система Планировка вычислений Балансировка нагрузки Коммуникации
описание алгоритма

Слайд 31

Модель: Фрагментированная программа

Фрагменты вычислений и данных
Формальные и фактические фрагменты
Структура данных и вычислений
Управление:

Модель: Фрагментированная программа Фрагменты вычислений и данных Формальные и фактические фрагменты Структура
прямое, потоковое
Переменные программы vs алгоритма
Способ исполнения: какие бывают рекомендации

Слайд 32

Разный порядок исполнения

Разный порядок исполнения

Слайд 33

Структурная составляющая

Структурная составляющая

Слайд 34

Система Фрагментированного Программирования

Визуальная среда разработки

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

Система Фрагментированного Программирования Визуальная среда разработки Параллельная библиотека

Слайд 35

Жизненный цикл фрагментированной программы

Жизненный цикл фрагментированной программы

Слайд 36

Промежуточное представление фрагментированной программы

Промежуточное представление фрагментированной программы

Слайд 37

Обзор проекта ФП

Языки высокого уровня Текстовый
Визуальный
Язык машинного представления
Исполнительные системы
Для мультипроцессоров
Для мультикомпьютеров
Для спецвычислителей

Обзор проекта ФП Языки высокого уровня Текстовый Визуальный Язык машинного представления Исполнительные
(Cell BE, GPGPU)
Библиотеки подпрограмм