3
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
5
1. ХАРАКТЕРИСТИКА СРЕДСТВ ПРОГРАММИРОВАНИЯ
МНОГОПРОЦЕССОРНЫХ СИСТЕМ
6
1.1. Системы с общей памятью
6
1.2. Системы с распределенной памятью
7
2. ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ С
ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИИ MPI
9
2.1 Основные понятия
9
2.2 Базовые функции MPI
11
2.3 Типы данных
13
2.4 Процедуры передачи/приема сообщений между отдельными
процессами
14
2.4.1 Обмен сообщениями с блокировкой
14
2.4.2 Обмен сообщениями без блокировки
17
2.4.3 Обмен сообщениями при помощи одной функции
19
2.5 Коллективные взаимодействия процессов
20
2.5.1 Барьерная синхронизация
21
2.5.2 Передача данных от одного процесса всем.
Широковещательная рассылка данных
21
2.5.3. Передача данных от всех процессов одному. Операции
редукции
23
2.5.4. Функции распределения и сбора данных
24
2.6 Эффективность параллельных вычислений
27
2.7 Примеры параллельных алгоритмов и программ
28
2.7.1 Алгоритм суммирования ряда чисел
28
2.7.2 Алгоритм умножения матрицы на вектор
30
2.7.3 Алгоритм умножения матриц
34
2.7.4 Алгоритм решения СЛАУ методом Гаусса
39
2.7.5 Алгоритм параллельной пузырьковой сортировки
41
3. ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ
ТЕХНОЛОГИИ OPENMP
45
3.1 Введение в технологию OpenMP
45
3.2 Основные понятия
46
3.2.1 Модель параллельной программы
46
3.2.2 Директивы и функции
48
3.3 Основные конструкции OpenMP
49
3.3.1 Параллельные секции, переменные среды и замер времени
49
3.3.2 Директивы single и
master
55