Характеристики

ISBN/ISSN 978-5-7782-1809-3
Год издания 2011
Автор Малышкин В.Э., Корнеев В.Д.
Вид издания уч.НГТУ
Кафедра ПВТ
Типография НГТУ
Факультет ФПМИ
350 руб.

Рассмотрены основные понятия параллельного программирования мультикомпьютеров, приведены краткие обзоры основного на текущий момент инструмента параллельного программирования мультикомпьютеров – библиотеки MPI и архитектур современных микропроцессоров и вычислительных систем. Содержатся материалы курсов по параллельному программированию, которые в течение 10 лет читаются в Новосибирском государственном техническом университете для студентов факультета прикладной математики и информатики и в Новосибирском государственном университете для студентов факультета информационных технологий.
Книга предназначена для студентов, магистрантов и аспирантов вузов, для научных сотрудников и практикующих программистов, а также для всех желающих изучить параллельное программирование.

Рассмотрены основные понятия параллельного программирования мультикомпьютеров, приведены краткие обзоры основного на текущий момент инструмента параллельного программирования мультикомпьютеров – библиотеки MPI и архитектур современных микропроцессоров и вычислительных систем. Содержатся материалы курсов по параллельному программированию, которые в течение 10 лет читаются в Новосибирском государственном техническом университете для студентов факультета прикладной математики и информатики и в Новосибирском государственном университете для студентов факультета информационных технологий.
Книга предназначена для студентов, магистрантов и аспирантов вузов, для научных сотрудников и практикующих программистов, а также для всех желающих изучить параллельное программирование.



ОГЛАВЛЕНИЕ
ПРЕДИСЛОВИЕ X 9
ВВЕДЕНИЕ X 12
Г л а в а 1. ПОНЯТИЕ ВЫЧИСЛИМОЙ ФУНКЦИИ X 15
1.1. Неформальное введение X 15
1.2. Основные предварительные понятия X 19
1.2.1. Алфавит X 19
1.2.2. Кодирование X 19
1.2.3. Бесконечный алфавит X 20
1.2.4. Наборы (кортежи) X 21
1.2.5. Термы X 21
1.3. Понятие рекурсивной функции X 23
1.3.1. Простейшие вычислимые функции X 23
1.3.2. Суперпозиция вычислимых функций X 23
1.3.3. Оператор примитивной рекурсии X 26
1.3.4. Оператор минимизации X 31
1.4. Детерминант вычислимой функции X 33
Г л а в а 2. ЗАДАЧА КОНСТРУИРОВАНИЯ ПАРАЛЛЕЛЬНОЙ ПРОГРАММЫ X 37
2.1. Представление алгоритма X 37
2.2. Требования к представлению параллельного алгоритма ......... 47
2.3. Простейшая программа, реализующая алгоритм ...................... 49
2.4. Сравнительная непроцедурность языков программирования X 50
Г л а в а 3. ВЗАИМОДЕЙСТВУЮЩИЕ ПРОЦЕССЫ X 53
3.1. Последовательные процессы X 53
3.2. Выполнение системы процессов X 58
3.3. Сети Петри X 60
3.3.1. Определение сети Петри X 60
3.3.2. Разметка сети X 61
3.3.3. Граф достижимости X 64
6 ОГЛАВЛЕНИЕ
3.4. Задача взаимного исключения X 66
3.5. Дедлоки X 65
3.5.1. Определение дедлока X 65
3.5.2. Необходимые условия возникновения дедлока................ 69
3.5.3. Борьба с дедлоками X 70
3.6. Задача о пяти обедающих философах X 72
3.7. Задача производитель/потребитель X 75
3.8. Реализация управления взаимодействующими процессами .... 77
3.8.1. Семафоры X 78
3.8.2. Задача взаимного исключения X 79
3.8.3. Задача производитель/потребитель с ограниченным буфером X 80
3.8.4. Задача читатели-писатели X 81
3.8.5. Критические интервалы X 84
Г л а в а 4. ПРОГРАММИРОВАНИЕ ВЗАИМОДЕЙСТВУЮЩИХ ПРОЦЕССОВ X 85
4.1. Асинхронное программирование X 85
4.1.1. Понятие асинхронной программы X 85
4.1.2. Некорректное вычисление данных X 89
4.1.3. Некорректное считывание данных X 89
4.2. Message passing interface (MPI) X 90
4.2.1. Определение MPI X 91
4.2.2. Параллельная программа разделения множеств .............. 93
4.2.3. Коммуникационно-замкнутые слои параллельной
программы X 96
4.2.4. Когерентность параллельных программ ........................... 98
4.2.5. Анализ программы разделения множеств ....................... 100
Г л а в а 5. ОРГАНИЗАЦИЯ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ В КРУПНОБЛОЧНЫХ ИЕРАРХИЧЕСКИХ
МУЛЬТИКОМПЬЮТЕРАХ X 103
5.1. Введение X 103
5.2. Иерархические мультикомпьютеры X 106
5.3. Линейные алгоритмы X 110
5.4. Динамическое отображение алгоритма на ресурсы
мультикомпьютера X 113
5.5. Система параллельного сборочного программирования Иня .... 118
5.5.1. Основные компоненты СПП X 119
5.5.2. Децентрализованное управление X 119
5.5.3. Централизованное управление X 123
5.5.4. Язык и система параллельного программирования Иня ... 123
Г л а в а 6. ОТОБРАЖЕНИЕ АЛГОРИТМОВ НА РЕСУРСЫ МУЛЬТИКОМПЬЮТЕРА X 133
6.1. Статическая постановка задачи X 133
6.2. Идеи параллельной реализация PIC X 142
6.2.1. Краткое описание метода X 142
6.2.2. Особенности параллельной реализации метода частиц X 144
6.2.3. Сборочный подход к конструированию программы...... 146
6.3. Распараллеливание метода частиц X 147
6.3.1. Распараллеливание метода частиц для линейки ПЭ (линеаризация PIC) X 148
6.3.2. Отображение линеаризованного PIC на 2D решетку ПЭ X 148
6.3.3. Отображение 2D решетки ПЭ на гиперкуб ..................... 149
6.4. Централизованные алгоритмы балансировки загрузки .......... 150
6.4.1. Начальная балансировка загрузки ПЭ X 151
6.4.2. Динамическая балансировка загрузки X 152
6.4.3. Виртуальные слои ПМ X 155
6.4.4. Централизованный алгоритм балансировки загрузки при реализации PIC на решетке ПЭ X 156
6.5. Децентрализованные алгоритмы динамической балансировки загрузки X 157
6.5.1. Основной диффузионный алгоритм X 157
6.5.2. Модифицированный диффузионный алгоритм .............. 158
6.5.3. Децентрализованный алгоритм динамической балансировки X 158
6.6. Заключительные замечания к реализации PIC ........................ 159
6.7. Общие принципы сборочной технологии параллельного программирования X 160
6.7.1. Собирать или делить? X 160
6.7.2. Двухуровневая система программирования ................... 161
6.7.3. Разделение семантики и схемы вычислений .................. 163
6.7.4. Динамическая балансировка загрузки X 163
6.7.5. Требования к представлению массовых алгоритмов для их параллельной реализации X 163
Г л а в а 7. СИНТЕЗ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ НА ВЫЧИСЛИТЕЛЬНЫХ МОДЕЛЯХ X 165
7.1. Простые вычислительные модели X 165
7.1.1. Исходные соображения X 165
7.1.2. Основные определения X 170
7.1.3. Оптимизация при планировании вычислений ................ 179
7.1.4. Генерация параллельных программ X 182
7.2. Алгоритмы синтеза параллельных программ ..................... 185
7.2.1. Общая схема синтеза параллельной программы ............ 185
7.2.2. Планирование алгоритма X 190
7.2.3. Выбор алгоритма X 195
7.2.4. Структурированные операции и их преобразования ..... 199
7.2.5. Проблема компиляции параллельной программы ......... 210
7.3. Вычислительные модели с массивами X 213
7.3.1. Упрощенные вычислительные модели с массивами...... 213
7.3.2. Динамические вычислительные модели с массивами ... 216
7.3.3. Итеративные вычислительные модели с массивами...... 217
7.3.4. Синтез максимально асинхронной программы .............. 219
7.4. Модификации и приложения метода X 220
7.4.1. Интеллектуализация модульного программирования ... 221
7.4.2. Моделирование дискретных систем X 225
Г л а в а 8. ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ В СИСТЕМАХ MPI и OpenMP X 229
8.1. Модели параллельного программирования X 230
8.2. Программирование на распределенных мультикомпьютерах и примеры параллельных программ в MPI.................... 237
8.2.1. Умножение матрицы на матрицу X 239
8.2.2. Параллельные алгоритмы решения систем линейных алгебраических уравнений методом Гаусса 254
8.2.3. Параллельные алгоритмы решения СЛАУ итерационными методами X 265
8.3. Программирование на суперкомпьютерах с общей памятью и примеры параллельных программ
в OpenMP  274
8.3.1. Умножение матрицы на матрицу X 276
8.3.2. Параллельный алгоритм решения СЛАУ методом Гаусса X 278
8.3.3. Параллельный алгоритм решения СЛАУ методом сопряженных градиентов X 282
Библиографический список X 287
Словарь терминов X 289

Данные подготавливаются.

Вернуться к списку