- •Теории параллельных вычислений
- •Часть 2
- •Теории параллельных вычислений. Часть 2. Методические указания / Сост. К.В.Кротов - Севастополь: Изд-во СевНту, 2009.- 81 с.
- •Содержание
- •1. Понятия отношений. Классы эквивалентности
- •2. Понятие зависимостей между операторами программы
- •Отношениями зависимости и независимости операций
- •3.1 Непосредственная (сильная) зависимость операций
- •Понятие линейной программы
- •Понятие множеств переменных, используемых в программе
- •Понятие входных переменных в программе
- •3.2 Слабая зависимость операций
- •3.3 Слабая независимость операций
- •3.4 Сильная независимость операций
- •Свойства отношений зависимости и независимости между операциями
- •Алгоритм распараллеливания последовательных программ путем приведения их к полной параллельной форме (ппф)
- •4.1 Условия приводимости к ппф
- •Упрощенная интерпретация условия
- •Пояснение к условию
- •Правило изменения порядка:
- •4.2 Процедура приводимости к ппф
- •Алгоритм преобразования программы к ппф
- •4.3 Метод формирования параллельных групповых операторов
- •Особенности распараллеливания программы путем приведения ее к ппф
- •5.1 Понятие двумерной модели вычислительного процесса
- •5.2 Уточнение множеств двумерной модели вычислительного процесса
- •6 Распараллеливание программ с использованием понятия модели вычислительного процесса Понятие операции и выражения
- •6.1 Постановка задачи распараллеливания
- •Правила построения таблицы для распараллеливания
- •6.2 Условия формирования множества *Aк (функция f1 - функция двумерной модели)
- •Условие бесконфликтности
- •6.3 Правила построения япф программы
- •6.4 Формализация условий вынесения операций ai на k-ый ярус япф
- •Операции с тремя входами
- •7 Распараллеливание программ на основе понятий примитивно-вычислимых и частично-вычислимых функций Понятие вычислимых и рекурсивных функций
- •7.1 Задание рекурсивных функций (Формирование процесса задания алгоритма вычислимых функций)
- •7.2 Суперпозиция вычислимых функций Задание области определения для оператора суперпозиции вычислимых функций
- •7.3 Оператор примитивной рекурсии
- •7.4 Распараллеливание алгоритмов примитивной рекурсии
- •7.5 Распараллеливание простейших аддитивных и мультипликативных функций
- •7.6 Операторы представления суперпозиции и примитивной рекурсии
- •Суперпозиция
- •Оператор рекурсии
- •7.7 Обобщенная форма операторов суперпозиции и рекурсии
- •7.8 Обобщенный вид оператора рекурсии
- •7.9 Обобщенный вид оператора суперпозиции для множественного потока данных
- •8 Распараллеливание программ с использованием моделей вычислительных процессов Модели программ
- •8.1 Граф управления
- •Информационный граф программы
- •8.2 Понятие графа зависимости между операторами
- •8.3 Граф влияния
- •8.4 Теоретико-графовый подход к распараллеливанию алгоритмов
- •8.5 Транзитивные замыкания
- •Формирование транзитивного замыкания
- •Формализация транзитивного замыкания (транзитивного образа вершины)
- •Формализация процедуры определения транзитивного прообраза вершины
- •8.6 Алгоритм формирования параллельной формы программы по графу управления на основе понятия транзитивного образа замыкания вершины
- •8.7 Алгоритм распараллеливания на основе понятия прообраза
- •8.8 Приведение стандартной схемы программы к ярусно-параллельной форме
- •Модели параллельных процессов
- •9 Сети петри
- •Алгоритм функционирования сети Петри
- •Возможности применения сетей Петри
- •10 Графовые модели. Общие понятия
- •10.1 Модель биологического графа
- •Правило функционирования моделей биологических графов
- •10.2 Модель модифицированного биологического графа
- •11.1 Алгоритм формирования а-схемы
- •11.2 Понятие спусковых и управляющих функций
- •11.3 Функционирование a-схем
- •11.4 Понятие вычислительного процесса
- •Аксиомы вычислительного процесса
- •Требования информационного обеспечения оператора а
- •11.5 Понятие конечного автомата (ка)
- •11.6 Логические рассуждения. Комментирование функционирования ка
- •12 Параллельные операторные схемы
- •Правило функционирования операторных схем
Условие бесконфликтности
(k)(aj, ai*Ak)(out ajout ai=0 out aj in ai=0 in ajout ai=0) ij.
Для любого k-го яруса ЯПФ и находящихся на нем операций aj и ai не должно быть общих переменных результатов (отсутствие конкуренции за переменную) и входные переменные какой-либо операции на данном ярусе не могут являться выходными переменными другой операции на данном ярусе (отсутствие конкуренции за значение). Условие бесконфликтности выполняется автоматически в случае реализации правила уникального именования результатов каждой операции.
6.3 Правила построения япф программы
На нулевой ярус ЯПФ (k=0) выносятся те операции aj , входные операнды которых являются входными по отношению к данному участку (aj – операция присваивания). В результате сформировано множество *Ak операций, которым дано разрешение на включение.
На последующий к-ый ярус выносятся те операции (входившие до этого в множество 0Ak), при этом значения входных переменных данной операции являются подготовительными операциями с вышестоящих ярусов.
Функция F2 определяет ограничение на ресурсы или условия запуска ai*Ak на выполнение.
Функция F2 может быть проинтерпретирована таким образом, что отсутствуют ограничения на ресурсы, при этом *Ak =+Ak.
6.4 Формализация условий вынесения операций ai на k-ый ярус япф
Условия формулируются в соответствии с количеством входных для данной операции aj операндов. В соответствии с этим операции определяют как:
Унарные;
Бинарные;
N-арные.
Для унарной операции условием вынесения на k-ый ярус является принадлежность номера этой операции множеству Wi𝝃k-1 предшествующего яруса. В результате номер операции j должен принадлежать объединению множеств Wi𝝃k-1 :
J
[
]k-1
Для бинарной операции номер операции j принадлежит любому из попарных пересечений множеств Wi𝝃 на предшествующем (k-1) ярусе либо один из операндов j- ой операции формируется на предшествующем ярусе от 0 до (к-2) ярусе включительно, а второй операнд формируется какой-либо операцией на ярусе (k-1).
[Wi𝝃]l
,
где l
=
- 1-ый операнд.
[Wp𝝃]k-1
j
[
]k-1
, при этом i
=
;
p
=
.
Таким
образом, номер операции j,
выносимой на к-ый ярус принадлежит
объединению множеств, являющихся
результатами попарных пересечений
множеств Wi
на (k-1)
ярусе. Номер операции j
принадлежит любому из пересечений
множеств Wi
на
ярусах
и на (k-1)
ярусе. Пересечение определяется для
объединения множеств Wl
на
любом из ярусов
и объединения множеств Wi
на (k-1)
ярусе.
Операции с тремя входами
Данные для j-ой операции могут быть подготовлены двумя операциями на любом из ярусов от 0 до (k-2) и одной из операций на (k-1).
Либо объединение: два операнда подготавливаются операциями на (k-1) ярусе, один на любом из ярусов от 0 до (k-2).
Операнд для j-ой операции формируется на трех различных ярусах: два операнда на
один
на (k-1)
ярусе.Операнды j-ой операции формируются операндами, находящимися на (k-1) ярусе.
2.
3.
4
.
Выражение (9) определяет объединение всех подмножеств на (k-1) ярусе, полученных путем трехкратного объединения множеств Wi на этом ярусе (то есть j принадлежит одному из возможных трехкратных пересечений множеств на (k-1) ярусе).
Выражение
(10) определяет принадлежность номера
операции j
множеству Wi
, находящемуся на различных уровнях от
и принадлежность номера j
любому из множеств Wi
на (
)
ярусе.
Выражение
(11) определяет принадлежность j
объединению попарных пересечений
множеств Wi
на
любом p-ом
ярусе
и любому из множеств Wi
на (k-1)
ярусе.
Выражение (12) номер j принадлежит любому из множеств Wi на p-ом ярусе р = и любому попарному пересечению множеств на (k-1) ярусе.
