Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_Trsipv_Ch_2.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
12.41 Mб
Скачать

Формализация процедуры определения транзитивного прообраза вершины

T(n+1) = T(n) T-1 (S(n))

S(n+1) = T(n+1) \ T(n)

T-1 (S(n)) – непосредственный прообраз вершин множества S(n), то есть те вершины, из которых ведут дуги в вершины множества S(n).

  1. S0 = {ak31}, T0 = 0

  2. T1 = {ak21 } = {ak21}

S1 = {ak21 }

  1. T2 = {ak21 } {ak11} = {ak21, ak11}

S2 = { ak11}

  1. T3 = {ak21, ak11} {ak21, ai}

T3 = {ai}

Таким образом, T(N) (N – число шагов) является множеством вершин (операторов) от выполнения которых зависит (непосредственно или опосредовано) выполнение оператора aj. То есть T(N) – это некоторый путь на графе, ведущий из начальной вершины в рассматриваемую aj.

S(N) - множество тех вершин графа, которые должны выполняться на n-ом шаге алгоритма (n-ом ярусе ЯПФ) для того, чтобы впоследствии была активизирована вершина aj.

8.6 Алгоритм формирования параллельной формы программы по графу управления на основе понятия транзитивного образа замыкания вершины

Через Га – множество вершин, в которые ведут дуги из данной вершины. Так как S(N) - множество вершин, выполняющихся на n-ом ярусе, то последовательность определения этих множеств при разных n может быть представлена в виде:

  1. S(n) = {a |a , Гa = } (1)

  2. S(n-1) = {a |a , Гa S(n) } (2)

  3. S(n-2) = {a |a , Гa { S(n-1) S (n) }} (3)

……………

n. S(0) = {a |a , Гa } (n)

Выражение (1) определяет множество вершин (листьев дерева), из которых не ведут дуги (множество Гa является пустым).

Выражение (2) определяет те вершины, которые соединены дугами с вершинами множества S (n).

….

Пример: формирование ППФ начинается с последнего яруса и заканчивается нулевым ярусом в корне дерева (рис. 10)

Рисунок 10 - Формирование ППФ

S(n) = {a9, a10 | Гa9 = | Гa10 = }

S(n-1) = {a6, a8 }

Г {a6} = {a9}

Г {a5} = {a9}

Г {a7} = {a10}

Г {a4} = {a10}

Г {a2} = {a4}

Г {a4} = {a6, a10}

Г {a8} = {a10}

S(n-2) = {a4, a5, a7 | Гa4 =

Гa5 =

Гa7= }

S(n-3) = {a2, a3}

S(n-4) = S(0) = {a1}

8.7 Алгоритм распараллеливания на основе понятия прообраза

Г -1а – вершины, из которых ведут дуги в данную вершину а, тогда Г -1а – некоторый путь на графе, то есть множество вершин {ak, ak+1, …, ak+n }, которые находятся на пути к вершине а.

Последовательность шагов алгоритма формирования ЯПФ:

S(0) = {a |a , Г -1a = } (1)

S(1) = {a |a , Г -1a S(0) } (2)

S(2) = {a |a , Г -1a {S(0) S(1)} } (3)

…………..

S(n) = {a |a , Г -1a } (4)

Выражение (1) определяет те вершины, в которые не ведут дуги.

Выражение (2) определяет те вершины, в которые идут дуги из вершин множества S(0).

Выражение (3) определяет те вершины, в которые идут дуги из вершин вышестоящих 0,1 и т.д.

Пример:

  1. S(0) = {a1 |a , Г -1a = }

  2. S(1) = {a2, a3, a5 |a , Г -1a2 = 1, Г -1a3 = 1, Г -1a5 = 1 }

Синтез параллельных программ на основе вычислительных моделей

Алгоритм формирования ППФ предполагает:

  1. Построение на основе блок-схемы программы (ее алгоритма) стандартной схемы программы.

  2. Построение на основе стандартной схемы программы графа зависимостей операторов (А-схем).

  3. Формирование на основе А-схемы ярусно-параллельной формы программы (ЯПФ).

Отличием стандартной схемы от блок-схемы программы является отображение (графическое) на каждом операторе входных и выходных переменных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]