- •Теории параллельных вычислений
- •Часть 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 Параллельные операторные схемы
- •Правило функционирования операторных схем
Модели параллельных процессов
Предметом изучения параллельного программирования являются численные методы, алгоритмы и программы, реализованные на соответствующих параллельных языках, а также сист. параллельные действия.
Предметом теории параллельного программирования являются формальные модели параллельных процессов, задач, алгоритмов, систем.
Изучение параллельных моделей позволяет оптимизировать как архитектуру систем так и алгоритмов.
9 Сети петри
Сети Петри могут быть применены как для исследования выполнения одного вычислительного процесса, так и для исследования взаимодействия параллельных вычислительных процессов.
Сеть Петри – это некоторый ориентированный граф, который в формализованном виде представляется так:
N = (P, T, F, H, M), где
Р – множество мест (условий выполнения действий операторов);
Т – множество переходов (действий);
F – множество стрелок из мест (Р) к переходам (Т);
Н – стрелки от переходов (Т) к местам (Р);
М0 – начальная разметка сети Петри, заключающаяся в сопоставлении с каждым местом графа определенного количества фишек (точек).На рисунке 16 изображена сеть Петри.
Рисунок 16 – Сеть Петри
Сеть имеет три места (Р1, Р2, Р3) и четыре перехода (a, b,c, d), разметка сети М отображается вектором, в котором каждому месту графа сопоставлено совокупность фишек:
М = m (Р1), m (Р2), m (Р3), где
m (Рi) – некоторая функция, которая определяет по алгоритмам функции сети количество фишек в месте Рi. Таким образом, начальная разметка
Пусть Т – некоторый переход , тогда Р является входным для Т, если
F (P,t) =1, выходным, если H (P,t) = 1.
Алгоритм функционирования сети Петри
Переход Т может сработать, если во всех его входных местах имеются фишки.
Одно срабатывание перехода заключается в удалении из каждого его входного места по одной фишке и добавлении ев каждое входное место также по одной фишке.
Функционирование сети Петри заканчивается, если отсутствует возможность срабатывания хотя бы одного перехода. Такая разметка тупиковая.
Фишка из входного места извлекается, но в выходное не выставляется в течение всего времени выполнения действия, отождествляется с переходом.
Возможности применения сетей Петри
Исследование одновременного выполнения процессов на различных участках.
Исследование организация синхронизации процессов, выполняющихся параллельно (пример 1).
Пример 1: работа двух процессоров над общей памятью.
Сети Петри моделируют взаимодействие процессов с памятью.
Рисунок 17 - Работа двух процессоров над общей памятью
Начальная разметка предполагает готовность процессов к считыванию данных от ВУ и незанятости памяти (место Р4). Возможность записи процесса данных реализуется при наличии фишек в месте Р3 (готовность данных) и Р4 - свободная память. В результате может сработать переходная запись данных в память, после чего фишки выставляются в места Р2 (готовность к считыванию новых данных).
Функциональные сети определяют невозможность одновременной записи в память, так как на время срабатывания перехода запись у одного из процессоров фишка Р4 извлекается, другой процесс не может обратиться к памяти и вновь выставлять в я Р4 после окончания перехода записи.
ЯПФ предполагает максимальное раскрытие задачи без учета ограничений на число процессоров (не учитывается особенность конкретного МВК).
Процесс адаптации ЯПФ к особенностям МВК предполагает построение последовательной программы, содержащей заданное количество параллельных ветвей и распределение операторов по ветвям этой схемы.
Таким образом, распределение операторов ППФ позволяет адаптировать структуру параллельной программы к особенностям МВК.
Если при разметке M возможно срабатывание Т и в результате получена разметка М’, то о достижимости разметки М’ из разметки М посредством перехода Т.
Обозначение
вида
используется в случае, если разметка
M’
достигается из разметки М путем реализации
последовательности переходов τ.
τ = { t1, ti+1,…, t i+m}
Переход Т рассматриваем из разметки М, если разметка М’ достижима из М и переход Т может сработать при разметке М’, то через R(n) может быть обозначено множество всех возможных разметок (достижимых в сети Петри).
Переход Т называется живым, если он может быть достижим из любой разметки множества R(n).
Условием правильно функционирования программ, моделирующих сети Петри является живучесть всех ее переходов.
Пример неживого перехода представлен на рисунке 18
Рисунок 18 - Пример неживого перехода
При срабатывании перехода c и перемещении фишки в место P2 c последующим срабатыванием перехода Р1. Переход А не сработает (не будет живым).
