- •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: основные конструкции и приемы программирования.
4.Отображение системы процессов. Синхронизация.
5.Показатели параллельных вс и вычислений.
6.Модель вычислений в виде графа "операции-операнды".
Модель вычислений в виде графа "операции-операнды"
Для описания существующих информационных зависимостей в выбираемых алгоритмах решения задач может быть использована модель в виде графа "операции-операнды" . Для уменьшения сложности излагаемого материала при построении модели будет предполагаться, что время выполнения любых вычислительных операций является одинаковым и равняется 1 (в тех или иных единицах измерения); кроме того, принимается, что передача данных между вычислительными устройствами выполняется мгновенно без каких-либо затрат времени (что может быть справедливо, например, при наличии общей разделяемой памяти в параллельной вычислительной системе). Анализ коммуникационной трудоемкости параллельных алгоритмов выполняется в 3 разделе пособия.
Представим множество операций, выполняемых в исследуемом алгоритме решения вычислительной задачи, и существующие между операциями информационные зависимости в виде ациклического ориентированного графа
G = (V, R) ,
Р
ис.
2.1. Пример вычислительной модели алгоритма
в виде графа "операции-операнды"
где V = {1, …, |V|} есть множество вершин графа, представляющее выполняемые операции алгоритма, а R есть множество дуг графа (при этом дуга r = (i, j) принадлежит графу только, если операция j использует результат выполнения операции i). Для примера на рис. 2.1 показан граф алгоритма вычисления площади прямоугольника, заданного координатами двух углов. Как можно заметить по приведенному примеру, для выполнения выбранного алгоритма решения задачи могут быть использованы разные схемы вычислений и построены соответственно разные вычислительные модели. Как будет показано далее, разные схемы вычислений обладают разными возможностями для распараллеливания и, тем самым, при построении модели вычислений может быть поставлена задача выбора наиболее подходящей для параллельного исполнения вычислительной схемы алгоритма.
В рассматриваемой
вычислительной модели алгоритма вершины
без входных дуг могут использоваться
для задания операций ввода, а вершины
без выходных дуг – для операций вывода.
Обозначим через
множество
вершин графа без вершин ввода, а через
d(G) диаметр (длину максимального пути)
графа.
7.Схема параллельного выполнения алгоритма.
Описание схемы параллельного выполнения алгоритма
Операции алгоритма, между которыми нет пути в рамках выбранной схемы вычислений, могут быть выполнены параллельно (для вычислительной схемы на рис. 2.1, например, параллельно могут быть выполнены сначала все операции умножения, а затем первые две операции вычитания). Возможный способ описания параллельного выполнения алгоритма может состоять в следующем.
Пусть p есть количество процессоров, используемых для выполнения алгоритма. Тогда для параллельного выполнения вычислений необходимо задать множество (расписание)
,
в котором для каждой операции i ∈ V указывается номер используемого для выполнения операции процессора Pi и время начала выполнения операции ti. Для того, чтобы расписание было реализуемым, необходимо выполнение следующих требований при задании множества Hp:
,
т.е. один и тот же процессор не должен
назначаться разным операциям в один и
тот же момент времени,
,
т.е. к назначаемому моменту выполнения
операции все необходимые данные уже
должны быть вычислены.
