- •Тема 1. Вычислительные системы параллельной архитектуры 2
- •Программирование в вычислительных системах параллельной архитектуре
- •Тема 1. Вычислительные системы параллельной архитектуры
- •Определение понятия архитектуры вычислительных системах:
- •Компоненты архитектуры вс
- •Связь в алгоритмических и структурных аспектах параллельного вычисления
- •Тема : Параллельная обработка информации в Многомашинных и многопроцессорных вычислительных процессов
- •Архитектурный принцип организации обработки данных вс
- •Принципы архитектуры:
- •Принцип потока управления
- •Принцип потока данных
- •Принцип потока запросов (не эффективный (долгая), но экономный)
- •2. Вс с множественным потоком команд, одиночный поток данных. Вс системы класса mkod
- •Вычислительные системы класса simd. Векторные и векторно-конвейерные вс
- •Вычислительные системы класса mimd. Симметричные мультипроцессорные вс
- •Вычислительные системы класса mimd. Numa. Неоднородный доступ к памяти
- •Вычислительные системы класса mimd. Вс с массовой параллельной обработкой
- •Тема: Методы распараллеливания программ и вычислений
- •Этапы распараллеливания при использовании япф (ярусно-параллельная форма) для представления программ
- •Алгоритм распараллеливания ациклических участков
- •Особенности распределения выражения.
- •Тема: Распараллеливание циклических фрагментов программ
- •Пространство итераций
- •Метод гиперплоскостей
- •Статическое планирование динамического распараллеливания
- •Принципы динамического распараллеливания
- •Принцип неизбежности
- •Принцип возможности.
- •Тема: Операторы задания взаимодействий Операторы индивидуальных взаимодействий:
- •Условия корректности параллельных алгоритмов
- •Корректность параллельных алгоритмов с операторами групповых взаимодействий.
Статическое планирование динамического распараллеливания
Принцип динамического распараллеливания
Статическое планирование динамического распараллеливания
Необходимость динамического распараллеливание становится необходимым при решении очевидных проблем общего вида, т.е. схем с циклами, образованными с операторами условного перехода.
Динамическое распараллеливание – распараллеливание, реализуемое в ходе выполнения операторов этой схемы, при котором решение на выбор очередного оператора осуществляется исходя из некоторых условий. В принципе, могут быть сформированы таблицы готовых решений, которые предписывают определенное правило (решение по выбору очередного оператора на выполнение).
Ярусно-параллельна форма имеет в каждом ярусе единственный операнд.
Если Рх=0, то оператор Д может быть выполнен 3м уровнем. Мы можем клонировать и передвинуть оператор Д.
Более совершенным является механизм спусковой функции для выполнения динамического распараллеливания. Универсальный механизм, который можно использовать в любых системах.
Спусковая функция- функция, функция, которую можно реализовать распараллеливание вычислений как циклических, так и ациклических схем.
Спусковая функция –логическое условие готовности, являющееся единственным механизмом управления последовательностью выполняемых операторов.
Объединяем в один ярус два оператора «Р» с оператором «В», таким образом обобщенный оператор будет «ВР». Перед выполнением «В» известно, что после него должен быдет выполниться оператор «Р», причем в очередной раз. Должен быть логический выход в опертор «В», а после него в «С». Если так, мы должны вновь произвести клонирование и таким образом цепочка будет бесконечно расширяться вправо.
Спусковая функция позволяет запустить асинхронный процесс
До стрелки пишем условия. После функция
Ua –переменная выполнения оператора А
Принципы динамического распараллеливания
Мы ничего не знаем о схеме выполнения программы. Ничего не знаем об алгоритмах. Техника действительно динамического распараллеливания базируется на:
Принцип неизбежности
В начальный момент времени специально обрабатывающий модуль «Дисеквентор». Дисеквентор анализирует и находит в программе готовность оператора, которые не требуют входной информации.
Операторы включается в определенной последовательности, затем выполняются и выдают результат. Моменты включения и выключения фиксируются. Через определенный промежуток времени Дисеквентор «просыпается», анализирует оставшуюся часть программы, информацию и делает предписание.
Выделяют оператор А1, который имеет устоявшуюся информацию, для которых уже вычислена.
устоявшуюся информацию – информация, которая не может быть изменена каким-либо оператором.
Принцип возможности.
Общая схема такая же, как и в принципе неизбежности.
НО!
В0-операторы, которые могут выполняться в некотором процессе задавая исходную программу
В1-определяет оператор, которые могут выполняться при продолжении процесса.
Данный алгоритм более расточительный. Применяются и те операторы, которые только могут пригодиться в будущем.
Принцип возможности позволяет получить максимальное параллельное вычисление.
Существуют две задачи, которые характерны для динамического распараллеливания (неоптимальное, неряшливое)
как определять в произвольный момент времени в произвольно-вычислительной ситуации все те вычислительные акты, которые можно включить в этот момент (таким средством явлений актов является функция уприждения «Look ahead function» рассматривает все возможное продолжение процессов, которое согласовано с порядком вычисления и берется либо с пересечением или объединения множеств фактов всех таких процессов. Над этим работает данная функция.
Данная функция работает только при небольшом количестве перебираемых вариантов. Переборная техника приводит к большим временным затратам.
Существует другой вариант «Техника конфигурации операторных схем».
ТЕМА: Модель параллельных вычислений
Понятие параллельного алгоритма
Операторы задания взаимодействий
Понятие параллельного алгоритма
S – Конечное множество над памятью оператора Д
S’ - подмножество S
Н – множество стартовой исходно-заданных регистров команд ( в нем лежит тело команд-то, что в данный момент дешифрируется)
С- операторы, задающие синхронизацию вычислительных процессов, задающие межпроцессорное взаимодействие.
С1- операторы, задающие назначающие операторы приемники.
С2- Создающие новые регистры команд или уничтожающие существующие регистры команд.
Параллельным алгоритмом над памятью Д называется кортеж или четверка в виде <S, S’, Н, С>
В каждый момент времени выполняется один оператор, тело которого находится в регистре команд.
Сущность регистра команд – алгоритма – аналогично сущности регистра команд-процессора.
НО! В регистре команд процессора лежит тело команды, а в регистре команд алгоритма лежит имя оператора (имя команды).
Одновременно могут выполняться несколько операторов, т.е. в любой момент времени может существовать несколько регистров команд. В данном случае каждый регистр команд содержит имя одного из выполняющего оператора. Все вместе содержат имена всех активных в данный момент операндов.
В регистре команд лежит тело. Аппаратная реализация
В регистре команд алгоритма лежит имя. Переменная, в которую положено имя.
В каждом регистре команд появляется имя правопреемника. После появления правопреемника его имя заменяется на имя приемника.
Открывается список приемников «для подачи заявок»
При отсутствии заявок со стороны, выполняющихся на других регистрах команд, приемника определяется оператором, выполнившем на данном этапе команд.
Ветвь параллельного алгоритма – последовательность имен операторов, появляющихся на одном регистре команд.
Набор всех имен, принадлежащих разным регистрам команд и выполняющихся в данный момент времени одновременно и называющийся вектором текущих состояний параллельного алгоритма.
Базовыми проблемами являются доказательства беступиковости и прозрачности параллельных алгоритмов.
Беступиковость - если условие включения любого оператора из множества С попавшего регистра команд удовлетворяется после выполнения конечного числа оператора в других ветвях , а вектор состояния никогда не содержит только оператора из множество С с неудовлетворёнными условиями включения.
Оператор С – оператор для межпроцессорного взаимодействия.:
Задают синхронизацию и
ими назначаются операторы приемники и , если надо, то и создание новых регистров команд.
С( I) – оператор индивидуальных взаимодействий
C(G)- оператор групповых взаимодествий
Под результатом параллельного алгоритма понимается состояние памяти Df ., после выполнения всех ветвей параллельного алгоритма .
Под реализацией понимается:
Совокупность порождённых им ветвей
Последовательность операторов, имеющих место в каждых ветвях
Результат выполнения оператора
Необходимо отметить, что две реализации одного и того же параллельного алгоритма могут давать разные результаты над одними и теми же данными. Причинами считаются следующие: различие скоростей выполнения процессов и различие моментов запуска стартовых операторов Д ‘ .
Параллельный алгоритм называется однозначным, если любые его реализации на одних и тех же исходных данных дабт один и тот же результат.
Задача беступиковости и однозначности решается при помощи специальных операторов
