- •Теории параллельных вычислений
- •Часть 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 Параллельные операторные схемы
- •Правило функционирования операторных схем
Оператор рекурсии
Схема примитивной рекурсии в простейшем виде:
f (n+1)(x1, x2, …, xn, Y0) = q (n) (x1, …, xn, 0)
f (n+1)(x1, x2, …, xn, Yi+1) = h (n+2) (x1, …, xn, Yi, f (n+1)( x1, …, xn, Yi) )
Тогда оператор примитивной рекурсии может быть задан в следующем виде:
f (n+1)(x1, x2, …, xn, Y) = R (q (n), h (n+2)) (22)
(22) определяет операторное представление рекурсии, где h – характеризует функцию некоторого i-го шага q0 шага рекурсии.
Пример вычисления примитивной рекурсии функции:
f(x) = x+n
q (x,0) = x
h (x, y, f(x,y))
h(x, 1, f(x,1)) = x+1
h(x, 2, f(x,2)) = x+2
7.7 Обобщенная форма операторов суперпозиции и рекурсии
Возможны два варианта представления оператора суперпозиции и рекурсии:
Оператор суперпозиции над простейшими вычислимыми функциями;
Оператор суперпозиции над функциями, вычислимость которых должна быть доказана.
f(x1, x2, …, xn) = S1(f1, q (n)1, q (n)2, q (n)3, …, q (n)m )
f(x1, x2, …, xn) = S2 (f2, q (n)2, q (n)22, q (n)23, …, q (n)2m)
Функция f(n)ki – полученная в результате применения оператора суперпозиции простейшей вычислимой функции. Оператор суперпозиции может быть построен как реализация некоторой функции над результатами применения оператора суперпозиции к простейшим вычислимым функциям при учете других аргументов, также являющихся простейшими вычислимыми.
f(x1, x2, …, xn) = S2(f2, S1(f1, q (n)1, …, q (n)m), q (n)21, …, q (n)22 … )
В результате вложенности операторов суперпозиции может быть получен некоторый вид обобщенного оператора S.
f(x1, x2, …, xn) = Sp (fp,…, (Sp-i(fp-i, Sp-(i+1)(fp-(i+1), …., S2 (f2, S1(f1, q(n)11, … , q(n)12, … , q(n)1m) q(n)22 …), …., q(n)1,p-(i+1) , … , q(n)m,p-(i+1)), …)….), q(n)1p, q(n)2p, …., q(n)mp)
7.8 Обобщенный вид оператора рекурсии
f = Sn (fn, R (R (R (f11, f12), f21, f22), f31, f32), f41, f42)
При получении функции f, являющейся результатом рекурсии, функция h’ имеет вид:
h = (R (R (R (f11, f12), f21, f22, f31, f32)
f = R (h(….); f41, f42)
7.9 Обобщенный вид оператора суперпозиции для множественного потока данных
Предшествующий вид оператора суперпозиции предполагал последовательное вычисление одного выражения.
Возможно вычисление совокупности выражений, результаты которых используются в обобщающем операторе суперпозиции.
Порядок:
f1, f2, …. , fm, …. fm+n
,
,
,
,
Анализ обобщенной формы оператора суперпозиции для нескольких потоков данных позволяет определить порядок реализации вычислений (определение результата функции), то есть порядок реализации функции.
Реализация распараллеливания обобщенного оператора суперпозиции для одного потока данных:
f = Sn (fn, … , Sk (fk, … , S2 (f2, S1 (f1,q11, q12 … q1r1), q21, q22, …, q2r2), … qk1, qk2, …, qkrk), … qn1, qn2, … , qnrn)
1: f1 = S (f1, q11, q12, q1r1);
2: f2 = S (f2,f1, q21, …., q1r2)
3: f3 = S (f3,f2, q31, …., q1r3)
Последовательная форма представления оператора суперпозиции определяет некоторую конвейерную обработку, выполняемую в магистрали с n-ым количеством элементов.
