- •Теории параллельных вычислений
- •Часть 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 Параллельные операторные схемы
- •Правило функционирования операторных схем
8.5 Транзитивные замыкания
Через Т (Г) обозначим бинарное отношение, которое выполняется для пары вершин а и а’, если между ними существует последовательность операторов (вершин) вида а1, а2, …, аl, а для каждой пары соседних элементов выполняется отношение Г:
а1 Г а
а2 Г а1
а’ Г аl
(Все диапазоны вершин попарно связаны дугами).
Под транзитивным замыканием для аi подразумевается выполнение отношения Т (Г) для вершин аi и некоторой вершины аj (совокупности вершин аj). Таким образом, путь из аj в аi определяет выполнение бинарного отношения Т (Г) для вершин аj и аi (то есть наличие пути характеризует транзитивное замыкание для вершины аi и связанных с нею вершин аj).
Транзитивный образ вершины аi - это множество вершин графа, удовлетворяющих отношению Т (Г), то есть образ – это все вершины аj , в которые ведет пут из данной вершины аi при условии транзитивного замыкания для рассмотренных вершин.
аi
T
(аi)
{ аj
}
Вершины аj должны удовлетворять следующему свойству:
а1 Г аi , а2 Г а1, … , аj Г аn
При
n
0 предполагается, что вершины либо
непосредственно следуют за рассматриваемой
аi
,
либо соединены с данной вершиной
некоторым путем.
Формирование транзитивного замыкания
T (ai) = {aj}, то есть вершины, для которых выполняется отношение Т (Г) транзитивного замыкания с вершиной ai. Тогда образ вершины ai - это множество вершин aj, в которые возможны пути из рассмотренной вершины ai.
Пример графа:
Рисунок 9 - Граф
Для akij (где i – номер яруса, j – номер операции на графе) выполняется условие транзитивного замыкания (условие для образа вершины ai ), тогда образ вершины ai имеет вид:
T (ai) = {ak11, ak12, … , ak33, ak34}
Вершины akij T (ai) связаны бинарным отношением Т (Г) с вершиной ai.
Формализация транзитивного замыкания (транзитивного образа вершины)
Вспомогательные множества S0 и Т0.
S0 - множество всех вершин ai, рассматриваемых на начальном шаге формирования ЯПФ.
S0 = S(0) = {ai}
Т0 – это сформированный на начальном шаге транзитивный образ вершины ai.
Т0
=
Т(0)
=
Тогда для определения транзитивного образа вершин графа реализуется рекурсивная процедура :
T(n+1)
= T(n)
Г(S(n))
S(n+1) = T(n+1) \ T(n), где Г(S(n)) - множество вершин графа, в которые ведут дуги из вершин множества S(n);
n – номер шага процедуры;
S(n) - это множество вершин графа на n-ом шаге, связанных с рассмотренной вершиной ai путями. Выполнение шагов алгоритма интерпретируется дискретно во времени. Через Tn обозначено дополнительное множество на (n+1) шаге, связанных путями с данной вершиной ai.
Пример реализации для рассмотренного вида графа (рисунок 1).
T(n+1) = Tn Г(S(n) )
S(n+1) = T(n+1) \ T(n)
S(0) = {aj}, T0 =
T1 = {ak11, ak12} = {ak11, ak12}
S1 = {ak11, ak12}
T2 = {ak11, ak12} {ak21, ak22, ak23} = {ak11, ak12, ak21, ak22, ak23}
S2= {ak21, ak22, ak23}
T3, S3 – те операции, которые зависимы от ai и определены на соответствующем l-oм шаге процедуры.
S3= {ak31, ak32, ak33, , ak34}
T3 – является образом вершины ai, учитывающей как прямые, так и транзитивные зависимости от операций ai.
Условие окончания реализации процедуры формирования образа Г(S(n)) = .
Транзитивный образ вершины определяет те вершины графа, которые должны находиться на нижестоящих ярусах ЯПФ. Соответствующий ярус ЯПФ формируется на основе выражения S(n+1.)
Обратное транзитивное замыкание определяется в том случае, если реализуется бинарное отношение T-1(Г). Бинарное отношение выполняющееся для пары вершин, если на графе существует путь из вершин из вершин ai, aj.
На основе бинарного отношения T-1(Г) формируется некоторый прообраз рассматриваемой вершины aj.
T-1(Г)
(ai,
aj)
T (Г) (ai, …, aj)
