- •Теории параллельных вычислений
- •Часть 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 Параллельные операторные схемы
- •Правило функционирования операторных схем
11.6 Логические рассуждения. Комментирование функционирования ка
Предыдущее действие (оператор) – некоторый набор результатов (альтернатив).
Альтернатива выключения операции;
Альтернатива управляющим сигналам;
Альтернатива последующего состояния.
- некоторое множество символов включения
операторов и соответствующее им
множество альтернатив завершения.
=
КА может быть представлен в виде множества параметров:
{Q,
0,
Q’,
}
Q – множество состояний КА;
- функция перехода;
0
– начальное состояние КА;
Q’ – множество заключительных состояний;
на основе текущего состояния КА и множества (выработанные этим оператором альтернативы результатов – управляющих сигналов) определяет новое состояние КА q’.
Таким образом, функция определяет ход вычислительного процесса, при этом движение по графу состояний осуществляется из некоторого начального состояния и завершается в одном из конечных состояний.
q’ = (q, ai ), где q’ – новое состояние; q – предшествующее состояние.
Пример КА, комментирующего взаимодействие выполняемого процесса с другим процессом, реализуемым параллельно, представлен на рис. 28
Рисунок 28 - Пример КА, комментирующего взаимодействие выполняемого процесса с другим процессом, реализуемым параллельно
При установлении взаимодействия между ним и вводе данных с внешних устройств с состоянием (1) - активность процессора, может быть сопоставлена некоторая совокупность операторов, результатами выполнения которых может являться одна из альтернатив.
(1-5) - требование перевода процессора в состояние ожидания от ВУ.
(1-4) – сигнал установления взаимодействия с выполнением параллельных программ.
(1-3) – сигнал перевода процессора в состояние ожидания, взаимодействие процессов без тайм-аута.
Остальные состояния предполагают безальтернативное свое завершение и формируют альтернативу переходов в состояние готовности. Таким образом, с состоянием (1) сопоставляется некоторое множество выполняемых операторов с основными состояниями, сопоставляемыми по (1) оператору.
12 Параллельные операторные схемы
Задан информационный базис MF, при этом каждому оператору А сопоставлена некоторая совокупность символов его выключения. Над базисом MF задана параллельная операторная схема, если первоначально для вычислительного процесса сформирован КА некоторого вида, при этом с каждым из состояний сопоставлена совокупность операторов. С КА сопоставлено множество операторов F. Таким образом, основа исследования выполняемых программ с использованием параллельных операторных схем является непосредственно сформированной для базиса (MF) КА. Дополнили средства, введенные в аппарат КА и позволили исследователю проверить параллельность программ.
Пример операторных схем:
Задано множество операторов F = {i, a, b, o}
Множество возможных состояний операторных схем:
Q = {q0, q1, q2, q3, q4 }
q0 – состояния ожидания события запуска процесса и установки взаимодействия, перерыв от ВУ;
q1 – состояние активности;
q2 – установление немедленного рандеву;
q3 – состояние выдачи результатов;
q4 - завершение процесса.
Множества альтернатив выключения операторов:
= {i1,
i2}
= {a1,
a2,
a3}
= {b1,
b2}
=
{o1}
Конечным состояние операторной схемы является q4.
Параллельная операторная схема моделирует выполнение процесса при установлении взаимодействия с двумя параллельными процессами и вводом данных.
Рисунок 29 – Операторная схема
Для функционирования операторных схем должна быть определена функция G (qi) , которая сопоставляет каждому значению КА qi некоторое множество операторов программ, выполняющихся в этом состоянии. Выход из qi по стрелке, помеченная как аi , соответствует выбору альтернативы завершения оператора А. Функционирование операторной схемы характеризуется тремя компонентами, определяющими ее текущее состояние.
- состояние памяти ( определяется значениями информационных и управляющих переменных);
qi – состояние управляющего КА;
m - совокупность всех наборов операндов, обрабатываемых соответствующими операторами Аi.
Через
m(Аi)
обозначается входная очередь операндов
к конкретному оператору, тогда
- набор входных очередей.
0
сопоставляет с каждым оператором Аi
некоторую пустую совокупность (очередь
) входных операндов.
Через
(
)
обозначается состояние операторной
схемы в произвольный момент времени.
