- •Теории параллельных вычислений
- •Часть 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 Параллельные операторные схемы
- •Правило функционирования операторных схем
10 Графовые модели. Общие понятия
Ориентированный граф может быть представлен как пара множеств (V, E), где V – конечное множество вершин,
Е – множество дуг.
Путь в графе – это последовательность П вида
П = ν0, ν1, … , νn (n>0), такая что (νi, vi+1 E)
Если ν0= νn, то путь называется контуром. Вершина U является предшественником вершины ν, а ν является последователем u, если существует путь из u в ν. Через In(v) обозначают множество входящих дуг в вершину v, out – выходные дуги.
10.1 Модель биологического графа
Особенности:
Возможность одновременной передачи управления по нескольким выходным дугам одной вершины.
Наличия условия инициирования вершины (может быть потребована передача управления по одной или нескольким входным дугам вершин графа).
Биологический граф – ориентированный граф вида (V,E), с каждой вершиной которого сопоставляется пара символов (Рис.19):
Рисунок 19 - Примеры символов, сопоставляемых с вершинами биологического графа
Входы – символы, отображающие условия инициирования вершин. Выходы – символы, определяющие условия передачи управления по выходным дугам.
Пример вида вершин биологического графа представлен на рисунке 20
Рисунок 20- Пример вида вершин биологического графа
Символ «*», указываемый для входных вершин, определяет конъюнктивно-входную логику (условие «и»), требующее передачи управления по всем входным дугам. Символ «+» определяет дизъюнктивно-входную логику (условие «или») передачи управления по входным дугам.
Символы «+» и «*», сопоставленные с выходными дугами, интерпретируются аналогично. При наличии одной выходной дуги, ее логика (тип) соответствует входной логике данной вершины.
Биологический граф – способ задания и моделирования функционирования параллельных программ, под вершинами в котором подразумеваются отдельные операторы, процедуры и программные блоки .
Примеры биологических графов представлены на рис. 21, 22.:
Рисунок 21 – Пример биологического графа (1)
Рисунок 22 – Пример биологического графа (2)
Срабатывание U1инициирует вершины U2 и U3, однако, срабатывание U6 возможно при получении управления по любой из входных дуг. Таким образом, срабатывание U6 произойдет дважды, а сама программа, моделируемая графом, генерирует да результата.
Правило функционирования моделей биологических графов
Инициирование выполнения всех начальных вершин, в которые не идут дуги.
При завершении выполнения, вершины с дизъюнктивной логикой (выходной), фишка, отображающая передачу управления, сопоставляется с любой из выходных дуг.
При завершении вершины с конъюнктивной логикой, все ее выходные дуги активизируются (на них указывают фишки).
Если вершина обладает конъюнктивной входной логикой , но для ее запуска необходимо наличие фишек на всех ее входных дугах
Если вершина обладает дизъюнктивной входной логикой, то выполнение операции, моделирующей вершины, инициируется при наличии фишки на какой либо входной дуге.
В модели биологического графа не рассматривается перемещение фишек от входной дуги к выходной, а лишь активизация дуг, соответствующая передаче управления.
Модель биологического графа может быть использована для решения задач:
Вычисление времени выполнения параллельной программы, моделируемой биологическим графом (с каждой вершиной сопоставляется определенная временная функция операции).
Составление расписания запуска параллельно выполняющихся задач в составе МВК.
Определение числа процессоров, используемых для интерпретации параллельной программы.
