- •Теории параллельных вычислений
- •Часть 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 Параллельные операторные схемы
- •Правило функционирования операторных схем
Свойства отношений зависимости и независимости между операциями
Отношения сильной зависимости (Si Sj):
Нерефлексивность
из
Si
→ Sj
Sj→
Si
Несимметричность
Si → Si - без смысла
Транзитивность
Из
Si
→
Sj
и Sj→
Sk
≠
Si
→ Sk
Отношения слабой зависимости (Si Sj):
Из Si Sj ≠ Sj Si
Из Si Si - без смысла
Из Si Sj и Sj Sk ≠ Si Sk
Отношения слабой независимости (Si Sj):
Из Si Sj Sj Si
Si Sj
Из Si Sj и Sj Sk ≠ Si Sk
Отношения сильной независимости (Si Sj):
Из Si Sj ≠ Sj Si
Si Sj
Из Si Sj и Sj Sk ≠ Si Sk
Алгоритм распараллеливания последовательных программ путем приведения их к полной параллельной форме (ппф)
Программа последовательна, если отсутствуют операции ветвления и циклы. Участок программы называется параллельным, если любая пара его операторов является независимыми операторами (могут выполняться параллельно).
Два участка программы называются взаимно параллельными, если любой оператор одного из них выполняется независимо от любого оператора другого.
Последовательность
операторов
в виде (3) или (4) называется линейной
цепочкой, если выполняется (3).
= S1 , S2 , S3, … , Sl (3)
= Si , Si+1 , … , Si+p (4)
S0
→
Si+1
,
Si+1
→
Si+2
…
Si+(p-1)→
Si+p
=>
Si
,
Si+1
,
Si+p
Последовательная цепочка называется максимальной, если она не содержится в другой (большей) последовательности.
Алгоритм приведения программы к ППФ предполагает выделение максимально-последовательных цепочек. Для двух или более максимально-последовательных цепочек выполняется условие:
α1
α2
=
0
То есть операторы, зависящие сильно от операторов одной цепочки и другой не могут входить ни в одну из них. Таким образом, два взаимно параллельных участка могут иметь вид максимально последовательных цепочек.
Пример (рис. 2):
S
1
→ S2
α1
=
{ S1
,
S2
, S3
}
S2 → S3 α2 = { S4 , S5 , S6, S7 }
S4 → S5 α1 α2 = 0
S5 → S6
S6 → S7
S3 → S8
S7 → S8
Рисунок 2 – Пример приведения программы к ППФ
Программа Р’, полученная из последовательной программы Р путем выделения в ней всех максимальных последовательных цепочек, называется ППФ(полной параллельной формой) линейной программы Р.
Параллельная
цепочка
называется
параллельным групповым оператором,
если представляет собой совокупность
независимо выполняющихся операций.
Цепочка является максимально параллельной,
если она не входит в состав других
максимально параллельных цепочек. Для
максимально параллельных цепочек
выполняется условие:
Программа P’ - это параллельная форма программы Р, если в программе Р могут быть выделены последовательные, параллельные, взаимно параллельные участки и в результате получена ППФ.
Условие:
Программа Р называется приводимой к ППФ, если путем замены максимально последовательных и параллельных цепочек соответствующими групповыми операторами может быть получена ППФ программы.
