'

Система параллельного программирования на основе типовых алгоритмических структур

Понравилась презентация – покажи это...





Слайд 0

Система параллельного программирования на основе типовых алгоритмических структур Истомин Тимофей Научный руководитель: д.ф-м.н. Берзигияров П.К. Работа выполняется при финансовой поддержке РФФИ, грант 01-07-90056


Слайд 1

Постановка задачи Создание высокоуровневого средства разработки параллельных программ.


Слайд 2

Высокий уровень + Строгость Простота Скорость разработки возможность автоматического анализа Переносимость – Ограниченность Эффективность Сложность инструментария


Слайд 3

Цели Простота проектирования и наглядность представления параллельных программ Предоставление возможностей повторного использования наработок Избавление от некоторых рутинных этапов процесса создания параллельной программы


Слайд 4

Основы подхода Использование готовых шаблонов (скелетов) часто используемых алгоритмов Гибкость – настраиваемость и масштабируемость шаблонов Связывание и включение шаблонов друг в друга


Слайд 5

Типовые Алгоритмические Структуры


Слайд 6

Определение Типовая алгоритмическая структура (ТАС)– это параметризуемый параллельный алгоритм, шаблон, фиксирующий схему решения некоторой задачи. Ps – структурные параметры, Pf – функциональные параметры.


Слайд 7

Примеры ТАС Map Независимый по данным параллелизм. К каждому элементу массива X применить функцию y = f(x) Reduce Операция над массивом типа X[]->z (например суммирование, поиск максимума, и т.д.) Farm Дублирование вычислительных элементов. Pipe Конвейер Comp Последовательная композиция Seq Последовательный код


Слайд 8

Программирование Анализ задачи Представление решения с помощью набора ТАС Параметризация каждой использованной ТАС


Слайд 9

Дерево алгоритма Алгоритм решения задачи представляется в виде дерева типовых алгоритмических структур


Слайд 10

Описание системы


Слайд 11

Устройство системы Библиотека шаблонов Содержит реализации шаблонов на каком-либо языке программирования Визуальный конструктор Позволяет собирать программу из шаблонов и генерировать код на целевом языке


Слайд 12

Библиотека шаблонов Шаблоны взаимодействия низкого и высокого уровней Типовые алгоритмические структуры Структуры данных Операции разбиения и сборки данных


Слайд 13

Типы коммуникационных шаблонов Comm – группа процессоров с фиксированной виртуальной топологией Stream – байтовый поток ExternalProtocol обеспечивает общение ТАС с внешней для нее средой (например, с объемлющей ТАС) Distributor производит рассылку данных по процессорам одной группы Gatherer собирает результаты работы группы процессоров


Слайд 14

Типы операций с данными Builder строит структуру данных из байтовой строки Decomposer производит разбиение данных на куски для дальнейшей рассылки Composer собирает структуру данных из кусков Data – интерфейс, который реализуют все структуры данных


Слайд 15

Схема работы с данными группа процессоров (Comm) данные (Data) кусочки (Data[]) декомпозиция (Decomposer) рассылка (Distributor) сборка Gatherer композиция Composer результат (Data) кусочки (Data[])


Слайд 16

Параметры ТАС Map Внешний протокол для получения данных и отправки результатов Параметры внутреннего протокола: группа процессоров, способы (де)композиции, рассылки и сборки данных. Применяемая к элементу данных функция (вложенная ТАС)


Слайд 17

Структура программы Программа состоит из секций: Создание объектов Связывание объектов Запуск на счет самой внешней ТАС На всех процессорах запускается одна программа.


Слайд 18

Работа ТАС Map void run() { ProcID currentProc = MyComm.getProcID(); if (currentProc.equals(MyHeadProc)) { Data task = MyExtProt.getTask(); MyDistributor.distribute(task); children[currentProc].run(); Data result = MyGatherer.gather(); MyExtProt.sendResult(); } else children[currentProc].run(); }


Слайд 19

Конструктор Визуальный редактор алгоритма Анализатор Генератор кода Программный интерфейс для встраиваемых модулей (plugins)


Слайд 20

Расширение функциональности Создание компонента: Класс, написанный в рамках модели Его описание на XML (тип, зависимости, параметры и их допустимые значения, схема размещения на процессорах) Модуль параметризации к конструктору (plugin)


Слайд 21

Спасибо за внимание


×

HTML:





Ссылка: