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

8.2 Понятие графа зависимости между операторами

Информационные связи между операторами могут быть определены на графе зависимости. Две операции являются зависимыми, если при выполнении они обращаются к одной и той же переменной (ячейке памяти). То есть, информационная зависимость реализуется выполнением операции чтения – запись над одной и той же переменной программы.

Пример графо зависимости:

Переменные Х, У, изменяемые в ходе выполнения программы. Значения Х,У определяются в операторах 1,2,4,6. Тогда вид графо зависимости:

Вывод, таким образом, информационный граф программы является подграфом зависимости. Из графа зависимости вытекает понятие графа влияния программы.

8.3 Граф влияния

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

Пример:

Изменение значений в 1 и 2 влияет на 4 и 6.

8.4 Теоретико-графовый подход к распараллеливанию алгоритмов

Задача представляется в виде последовательности операторов А = {a1, a2, a3, …, an}.Задача распараллеливания состоит в выделении из множества Ф подмножества i взаимно независимых операторов, где i определяет некоторый ярус ЯПФ. Через 0 могут быть обозначены операторы, зависящие от входных данных программы. Для совокупности подмножеств i выполняется условие:

  1. i ,

  2. i j = 0,

  3. = A

Задача распараллеливания может быть сформирована в соответствии с теорией графов.

Множество А представляется в виде графа G: G (A,Г),

Где аi, aj , (аi, aj) Г

Дуга (аi, aj) соединяет две вершины в случае если результат i-го оператора является аргументом для j-го.

Обозначения:

Г j - множество вершин, последующих за j-м ярусом, в которые ведут дуги из операторов данного j-го яруса, тогда

i - некоторое подмножество Г j, то есть множество вершин i-го яруса, в которые ведут дуги из вершин j-го яруса (множество j).

Г j - множество вершин графа последующих ярусов, в которые ведут дуги из данного оператора aj, тогда ai Г j (наличие дуги, ведущей из оператора aj в ai ). Таким образом, Г j и Г j определяют множество вершин, соединенных дугами с вершинами множества j либо с вершинами j. Тогда распараллеливание – это задача разбиения вершин графа на подмножества j, так, чтобы удовлетворить введенные условия (1,2,3) и множество j является подмножеством Г j. Для каждой операции ai S предполагается наличие другой операции ai S-1, aj Гaj.

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