- •Теории параллельных вычислений
- •Часть 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 Параллельные операторные схемы
- •Правило функционирования операторных схем
7.3 Оператор примитивной рекурсии
Оператор
примитивной рекурсии позволяет
определить вычисления специального
вида. Заданы n-местная
вычислимая функция
и (n+2)
–местная вычислимая функция
.
Эти функции определяют алгоритм (ход
вычисления значений) получения
(n+1)-местной
функции
,
которая строится путем применения
примитивной рекурсии к функциям
и
(значение
получено
примитивной рекурсией из функций
,
).
Обозначив через
- входные данные,
-индекс
шага вычислений, процесс получения
значений функции
можно представить в виде:
. . . .
(13)
Зависимость
функции
от
определяет особенности использования
переменных
в вычислениях (на том или ином шаге
используется определенные подмножества
{
}
(
)
; {
}={
}).
Выражение (14) – схема примитивной
рекурсии. Схема примитивной рекурсии
есть алгоритм вычисления функции f.
Данная
схема может быть детализирована с
использованием термального представления
(суперпозиции)
вычисленных функций(где
– обозначение функционального терма)
следующим образом:
(14)
т.к.
выражение (15) представляет собой способ
вычисления функции
,
то функция
определена
однозначна для любого (для всех)
.
Последовательность (
)-го
функциональных термов прокомментирована
графически на Рис. 7.
Рисунок 7- Процесс вычисления примитивно-рекурсивной функции
Индекс
y
в (14) определяет использование функциями
данных подмножеств
переменных из множества {
}
(
).
Таким
образом, функции
и
определяют
процесс (ход, алгоритм) получения
результата, представленного функцией
(т.е.
множество функциональных термов
определяет алгоритм вычисления функции
).
Циклическое вычисление операторов суперпозиции позволяет реализовать множество функциональных термов (реализовать представление алгоритмов множеством термов). Ввычисление функции может быть представлено следующим образом:
P: S=k-1;
f
[0]:=
;
for i=1 to s do
f[i]:=h
;
f:=f[k-1]; /* f-конечный результат.
Из термального представления (14) могут быть сделаны выводы, касающиеся вычисления функции :
если известны (определены) алгоритмы вычисления функции и
,
то функция
является
вычислимой;в программе оператор примитивной рекурсии реализуется циклом путем применения определенное число раз оператора суперпозиции.
Т.о. функция - примитивно - рекурсивная относительно множества простейших функций, если она строится из простейших вычисленных функций с применением операторов суперпозиции и примитивной рекурсии конечное число раз. Способ задания функции предполагает, что ее значение для произвольных аргументов определяется значением той же функции для меньших (по индексу (номера)шага) значений аргументов.
7.4 Распараллеливание алгоритмов примитивной рекурсии
В результате использованных выше рассуждений циклические вычисления, выполнимые на основе рекурсии могут быть представлены в виде (15) как выражения, использующие значения этих же функций с предыдущих шагов. (Цепочка последовательных вычислений, которая может быть распараллелена).
Большинство рекурсивных вычислений может быть проинтерпретировано в виде одной из ниже следующих цепочек выражений:
аддитивная функция (операция суммирования):
(15)
Таким
образом, каждое последующее значение
функции f(.)
отличается от предыдущего на величину
(т.е. на величину, равную значению функции
q(.));
функция мультиплексирования (операция умножения);
(16)
Таким образом, последующее значение функции f(.) отличается от предыдущего в число раз.
В результате применения оператора примитивной рекурсии к выражениям (15) и (16) они (эти выражения) могут быть представлены в следующем виде:
1)
,
(17)
где
функция
является примитивно-рекурсивной (по
причине выполнения условия примитивной
рекурсии для функции q(.)).
2)
,
(18)
где функция также примитивно-рекурсивна.
В соответствии с исследованиями ряда авторов распараллеливание вычислений, построенных с использованием операторов примитивной рекурсии выполняется на основе выражений (18) и (17).
