
- •1.Вычислительные процессы. Формальная модель. Свойства процесса.
- •2.Система процессов. Независимые процессы. Взаимодействие процессов.
- •3. Классы параллельных вс.
- •4.Отображение системы процессов. Синхронизация.
- •5.Показатели параллельных вс и вычислений.
- •6.Модель вычислений в виде графа "операции-операнды".
- •7.Схема параллельного выполнения алгоритма.
- •8.Определение времени выполнения параллельного алгоритма.
- •9.Теоретические оценки времени выполнения параллельных алгоритмов.
- •10.Показатели эффективности параллельного алгоритма.
- •11.Оценка максимально достижимого параллелизма. Анализ масштабируемости параллельных вычислений.
- •12.Процессы и потоки.
- •13. Закон Амдала.
- •14.Mpi: Стандарт mpi. Общие понятия. Области связи и коммуникаторы.
- •15.Общие процедуры mpi: Инициализация, Завершение.
- •16.Общие процедуры mpi: Определение общего числа параллельных процессов в группе. Определение номера процесса в группе.
- •17.Mpi: Прием/передача сообщений между отдельными процессами.
- •18.Mpi: Групповые (коллективные) взаимодействия. Рассылка целого сообщения процессам. Сборка данных от процессов.
- •19.Mpi: Групповые (коллективные) взаимодействия: Рассылка частей сообщения процессам. Сборка частей сообщения с процессов.
- •20.Mpi: Функции поддержки распределенных операций: Выполнение глобальных операций с возвратом результатов в главный процесс. Выполнение глобальных операций с возвратом результатов во все процессы.
- •21.Mpi: Синхронизация процессов.
- •22.OpenMp: Общие понятия. Область применения.
- •23.Директивы OpenMp: Директивы для определения параллельной области.
- •24.OpenMp: Директивы для распределения вычислений внутри параллельной области: Директива for.
- •25.OpenMp: Директивы для распределения вычислений внутри параллельной области: Директива sections.
- •26.OpenMp: Директивы для распределения вычислений внутри параллельной области: Объединение директив parallel и for (sections).
- •27.Классическая задача об обедающих философах.
- •28.Задача «читатели и писатели».
- •29.Язык параллельного программирования Okkam: основные конструкции и приемы программирования.
- •30.Язык параллельного программирования Linda: основные конструкции и приемы программирования.
- •31.Язык параллельного программирования Ada: основные конструкции и приемы программирования.
8.Определение времени выполнения параллельного алгоритма.
Модель вычислительной схемы алгоритма G совместно с расписанием Hp может рассматриваться как модель параллельного алгоритма Ap(G, Hp), исполняемого с использованием p процессоров. Время выполнения параллельного алгоритма определяется максимальным значением времени, используемым в расписании
.
Для выбранной схемы вычислений желательно использование расписания, обеспечивающего минимальное время исполнения алгоритма
.
Уменьшение времени выполнения может быть обеспечено и путем подбора наилучшей вычислительной схемы
.
Оценки Tp(G, Hp), Tp(G) и Tp могут быть использованы в качестве показателей времени выполнения параллельного алгоритма. Кроме того, для анализа максимально возможной параллельности можно определить оценку наиболее быстрого исполнения алгоритма
.
Оценку T∞ можно рассматривать как минимально возможное время выполнения параллельного алгоритма при использовании неограниченного количества процессоров (концепция вычислительной системы с бесконечным количеством процессоров, обычно называемой паракомпьютером, широко используется при теоретическом анализе параллельных вычислений).
Оценка T1 определяет время выполнения алгоритма при использовании одного процессора и представляет, тем самым, время выполнения последовательного варианта алгоритма решения задачи. Построение подобной оценки является важной проблемой при анализе параллельных алгоритмов, поскольку применяется для определения эффекта использования параллельности (ускорения времени решения задачи). Очевидно
,
где | |, напомним, есть количество вершин вычислительной схемы G без вершин ввода. Важно отметить, что если при определении оценки T1 ограничиться рассмотрением только одного выбранного алгоритма решения задачи
,
то получаемые при использовании такой оценки показатели ускорения будут характеризовать эффективность распараллеливания выбранного алгоритма. Для оценки эффективности параллельного решения исследуемой задачи вычислительной математики величину T1 следует определять с учетом всех возможных последовательных алгоритмов
(эффективный параллельный алгоритм может не совпадать с наилучшим последовательным методом при исполнении на одном процессоре).
9.Теоретические оценки времени выполнения параллельных алгоритмов.
Приведем без доказательства теоретические положения, характеризующие свойства оценок времени выполнения параллельного алгоритма [18].
Теорема 1. Минимально возможное время выполнения параллельного алгоритма определяется длиной максимального пути вычислительной схемы алгоритма, т.е.
.
Теорема 2. Пусть для некоторой вершины вывода в вычислительной схеме алгоритма существует путь из каждой вершины ввода. Кроме того, пусть входная степень вершин схемы не превышает 2. Тогда минимально возможное время выполнения параллельного алгоритма ограничено снизу значением
,
где n есть количество вершин ввода в схеме алгоритма.
Теорема 3. При уменьшении числа используемых процессоров время выполнения алгоритма увеличивается пропорционально величине уменьшения количества процессоров, т.е.
.
Теорема 4. Для любого количества используемых процессоров справедлива следующая верхняя оценка для времени выполнения параллельного алгоритма
.
Теорема 5. Времени выполнения алгоритма, сопоставимым с минимально возможным временем T∞, можно достичь при количестве процессоров порядка p ∼ T1 / T∞, а именно,
.
При меньшем количестве процессоров время выполнения алгоритма не может превышать более чем в 2 раза наилучшее время вычислений при имеющемся числе процессоров, т.е.
.
Приведенные утверждения позволяют дать следующие рекомендации по правилам формирования параллельных алгоритмов:
при выборе вычислительной схемы алгоритма должен использоваться граф с минимально возможным диаметром (см. теорему 1);
для параллельного выполнения целесообразное количество процессоров определяется величиной p ∼ T1 / T∞ (см. теорему 5);
время выполнения параллельного алгоритма ограничивается сверху величинами, приведенными в теоремах 4 и 5.
Для вывода рекомендаций по формированию расписания по параллельному выполнению алгоритма приведем доказательство теоремы 4.
Доказательство теоремы 4. Пусть H∞ есть расписание для достижения минимально возможного времени выполнения T∞. Для каждой итерации τ, 0 ≤ τ ≤ T∞, выполнения расписания H∞ обозначим через nτ количество операций, выполняемых в ходе итерации τ. Расписание выполнения алгоритма с использованием p процессоров может быть построено следующим образом. Выполнение алгоритма разделим на T∞ шагов; на каждом шаге τ следует выполнить все операции, которые выполнялись на итерации τ расписания H∞. Выполнение этих операций может быть выполнено не более, чем за énτ / pù итераций при использовании p процессоров. Как результат, время выполнения алгоритма Tp может быть оценено следующим образом:
.
Доказательство теоремы дает практический способ построения расписания параллельного алгоритма. Первоначально может быть построено расписание без учета ограниченности числа используемых процессоров (расписание для паракомпьютера). Затем, следуя схеме вывода теоремы, может быть построено расписание для конкретного количества процессоров.