- •Тема 1. Вычислительные системы параллельной архитектуры 2
- •Программирование в вычислительных системах параллельной архитектуре
- •Тема 1. Вычислительные системы параллельной архитектуры
- •Определение понятия архитектуры вычислительных системах:
- •Компоненты архитектуры вс
- •Связь в алгоритмических и структурных аспектах параллельного вычисления
- •Тема : Параллельная обработка информации в Многомашинных и многопроцессорных вычислительных процессов
- •Архитектурный принцип организации обработки данных вс
- •Принципы архитектуры:
- •Принцип потока управления
- •Принцип потока данных
- •Принцип потока запросов (не эффективный (долгая), но экономный)
- •2. Вс с множественным потоком команд, одиночный поток данных. Вс системы класса mkod
- •Вычислительные системы класса simd. Векторные и векторно-конвейерные вс
- •Вычислительные системы класса mimd. Симметричные мультипроцессорные вс
- •Вычислительные системы класса mimd. Numa. Неоднородный доступ к памяти
- •Вычислительные системы класса mimd. Вс с массовой параллельной обработкой
- •Тема: Методы распараллеливания программ и вычислений
- •Этапы распараллеливания при использовании япф (ярусно-параллельная форма) для представления программ
- •Алгоритм распараллеливания ациклических участков
- •Особенности распределения выражения.
- •Тема: Распараллеливание циклических фрагментов программ
- •Пространство итераций
- •Метод гиперплоскостей
- •Статическое планирование динамического распараллеливания
- •Принципы динамического распараллеливания
- •Принцип неизбежности
- •Принцип возможности.
- •Тема: Операторы задания взаимодействий Операторы индивидуальных взаимодействий:
- •Условия корректности параллельных алгоритмов
- •Корректность параллельных алгоритмов с операторами групповых взаимодействий.
Алгоритм распараллеливания ациклических участков
Если многопроцессорная ВС способна воспринять ярусно-параллельную форму, то после построения такой формы программирование заканчивается.
В случае, когда ВС не воспринимает такую форму (по количеству процессов она уже), то строят программы параллельно-последовательного вида.
1. Выделяются параллельные ветви по количеству параллельных процессов в ВС
2. распределяются операторы по ветвям
Первое и второе зависит от конфигурации ВС и от графа зависимости.
Общий алгоритм распараллеливания ациклических участков распадается на три части:
1. Построение графа зависимости
2. Построение ярусно-параллельной формы
3. синтаксис параллельно-последовательной.
Общий алгоритм:
Нахождение информационной зависимости\
Нахождение логической зависимости
Нахождение конкуреционной зависимости
Построение графа зависимости
Формирование первого яруса
Проверка окончания формирования первого яруса
Пусть сформирована k- ярусов. Если не осталось не распределенных перейти к 8. Иначе к пункту 7.
7. формирование ….
8. формирование параллельно-последовательной программы. Программа открывается оператором…
9. формирование… распределение первого яруса по ветвям в И-ю ветвь включаются операторы до тех пор, пока список операторов первого яруса не исчерпается.
10. проверка окончания формирования ветвей. Пусть распределены по ветвям к-ярусы. Если ярусно-параллельная форма исчерпана, то перейти на шаг 12, иначе на шаг 11
11. распределение к+1 яруса по ветвям. К И-той приписывается последовательность операторов к+1 яруса, пока список операторов не исчерпается.
12. формирование окончания программы
Особенности распределения выражения.
С точки зрения структуры вычисления, выражение - это Ациклический процесс.
В выражения не всегда жестко определен порядок выполнения отдельных действий. Меняя порядок их выполнения удается распараллелить выполнение этих вычислений. В таком случае скорость вычисления определяется высотой дерева вычисления.
Тема: Распараллеливание циклических фрагментов программ
Пространство итераций
Метод гиперплоскостей
Метод координат
Метод пирамид
Пространство итераций
Обработка циклов- основная работа, которую производит компьютер.(до 90% времени). Циклы повторяются. Удельный вес циклических участков в общем объеме выполнения программ приближается к единице. Важным является распараллеливание циклических участков.
Важнейшим понятием является пространство итераций.
пространство итераций – множество целочисленных векторов
Задача распараллеливания фрагмента, который имеет вложенный цикл, представляется в виде решения двух последовательных задач:
1. выявление полных зависимостей между отдельными итерациями
2. сборка на основе выявленных зависимостей, отдельных итераций в параллельные ветви.
Чем больше мощность таких итераций, тем быстрее выполняются параллельные вычисления
Метод гиперплоскостей
Для этого метода предполагается, что тело цикла не содержит отсылок вне тела.
Все индексы выражения линейны и имеют следующий вид …..
Индекс Ии не изменяются телом цикла.
Пример с плоскостью и блинами.
Применение может оказаться параллельным одной из координат плоскостей. В этом случае результирующая конструкция принимает более простой вид.
Открывается цикл по более простой переменной и задается параллельное выполнение всех итераций при производных значениях остальных переменных
Метод координат
Фото Рисунок
Метод пирамид
Фото Рисунок
Результирующая итерация
Фото Рисунок
Тема: Динамическое распараллеливание
