- •Теории параллельных вычислений
- •Часть 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 Параллельные операторные схемы
- •Правило функционирования операторных схем
Особенности распараллеливания программы путем приведения ее к ппф
Различные операторы циклов и передачи управления снижают степень эффективности распараллеливания. Поэтом определены правила для интерпретирования входных операторов программ, изменяющих порядок их выполнения:
Внутри некоторого последовательного участка допускаются любые переходы, не выходящие за его пределы.
Внутри параллельного участка допускаются любые переходы, не выходящие за его пределы и не приводящие к конфликтным ситуациям при синхронизации параллельно выполняющихся процессов.
Если управление из параллельного участка передается за его пределы, то синхронизация нижестоящих операторов реализуется только при окончании выполнения операторов данного параллельного участка.
5.1 Понятие двумерной модели вычислительного процесса
Двумерная модель вычислительного процесса вводит понятия множеств операций, используемых при выполнении программы. На основе анализа этих множеств определяются процессы, выполняющиеся параллельно, моменты времени начала их выполнения и окончания.
Названная модель задается в форме системы уравнений в следующем виде:
qt=(M0, P\\t-1);
At =At-1\ + At-1;
*At=F1(At, qt);
+ At=F2(*At, J);
PAt=F3(+ At, qt);
- At=F4(p At, qt);
где qt - текущее состояние памяти (значение информационных и управляющих переменных);
P\\t-1 - предыстория процесса в момент времени t (вычислительный процесс, выполняющийся до (t-1) шага включительно, вызывающий изменения состояния памяти);
М0 – начальное состояние памяти (начальные значения переменных);
At - множество операций, находящихся к моменту времени t в выключенном состоянии (то есть операции, которые не готовы к выполнению, так как для них не подготовлены исходные данные и соответствующие управляющие сигналы);
*At - множество операций, для которых в текущий момент времени t дано разрешение на включение (для них подготовлены исходные данные, восполнена синхронизация, т.е. готовы быть запущенными);
Таким образом, операции выбирается из At такие, что состояние памяти qt определяет готовые для их выполнения информационно-управляющие переменные.
Множество At формируется из множества не включившихся до (t-1) шага операций, исключаются операции, которым на (t-1) шаге дано разрешение на включение. Операции, принадлежащие одному множеству, переводятся в другое множество в момент времени (t-1).
+ At – множество операций, включающихся в момент времени t;
PAt – множество операций, работающих в момент времени t.
Множеств +At определяется на основе операций, готовых к включению, с учетом структурно-временных характеристик ВС и свободных ресурсов ВС.
Таким образом, J определяет наличие свободной памяти процессоров, необходимых для активизации задач.
Множество PAt формируется с учетом включившихся в момент t операций на основе текущего состояния памяти.
Состояние памяти qt влияет на работающие операции, так как для них могут быть не подготовлены некоторые синхронизирующие сигналы либо промежуточные значения.
- At – множество операций, выключающихся в момент времени t. Формируется из множества работающих с учетом требуемого для их выключения состояния памяти, то есть работающая операция переводит значение переменных в некоторое требуемое состояние и может быть выключена.
