КнигоПровод.Ru22.11.2024

/ИТ-книги

Технологии параллельного программирования MPI и OpenMP: Учебное пособие — Антонов А. С.
Технологии параллельного программирования MPI и OpenMP: Учебное пособие
Учебное издание
Антонов А. С.
год издания — 2012, кол-во страниц — 344, ISBN — 978-5-211-06343-3, тираж — 2000, язык — русский, тип обложки — твёрд. 7БЦ матов., масса книги — 570 гр., издательство — МГУ
серия — Суперкомпьютерное образование
КНИГА СНЯТА С ПРОДАЖИ
Формат 70x100 1/16. Бумага офсетная №1. Печать офсетная
ключевые слова — многопроцессорн, параллелизм, суперкомпьютер, mpi, openmp, параллельн, интеркоммуникатор, клиент-сервер, процесс

Данное учебное пособие предназначено для освоения практического курса параллельного программирования с использованием технологий MPI и ОреnМР. В настоящее время технология MPI является основным средством программирования для кластерных систем и компьютеров с распределённой памятью, а технология ОреnМР — для компьютеров с общей памятью. Курс включает в себя описание большей части функциональности стандартов MPI-2.2 и ОреnМР 3.1 с примерами их применения, а также практические сведения, которые могут потребоваться при написании реальных программ с использованием этих технологий параллельного программирования.

Учебное пособие может использоваться также в качестве справочника по рассматриваемым технологиям параллельного программирования, однако некоторые процедуры и детали описания соответствующих стандартов опускаются для простоты изложения и восприятия материала. Описание ведётся с использованием технологий MPI и ОреnМР в программах на языках программирования Си и Фортран. Приводятся примеры небольших законченных параллельных программ, тексты которых можно скачать со страниц в сети Интернет. Для проверки примеров и получения результатов использовались суперкомпьютеры СКИФ МГУ «Чебышев» и «Ломоносов». В конце разделов приводятся контрольные вопросы и задания, которые можно использовать в процессе обучения.

Для студентов, аспирантов и научных сотрудников, чья деятельность связана с параллельными вычислениями.

ОГЛАВЛЕНИЕ

Предисловие12
 
Глава 1. Технология параллельного программирования MPI14
 
Алфавитный указатель по функциям MPI14
1.1. Введение18
1.2. Основные понятия19
1.3. Общие процедуры MPI21
Вопросы и задания30
1.4. Передача и приём сообщений между отдельными процессами30
1.4.1. Операции типа точка-точка30
1.4.2. Передача и приём сообщений с блокировкой31
1.4.3. Передача и приём сообщений без блокировки49
1.4.4. Отложенные запросы на взаимодействие63
1.4.5. Тупиковые ситуации (deadlock)67
Вопросы и задания70
1.5. Коллективные взаимодействия процессов72
1.5.1. Общие положения72
1.5.2. Барьер73
1.5.3. Коллективные операции пересылки данных76
1.5.4. Глобальные операции85
1.5.5. Пользовательские глобальные операции94
Вопросы и задания96
1.6. Группы и коммуникаторы97
1.6.1. Общие положения97
1.6.2. Операции с группами процессов98
1.6.3. Операции с коммуникаторами105
1.6.4. Интеркоммуникаторы111
1.6.5. Атрибуты115
Вопросы и задания124
1.7. Виртуальные топологии126
1.7.1. Общие положения126
1.7.2. Декартова топология127
1.7.3. Топология графа133
Вопросы и задания142
1.8. Пересылка разнотипных данных143
1.8.1. Общие положения143
1.8.2. Производные типы данных143
1.8.3. Упаковка данных155
Вопросы и задания159
1.9. Объект info160
1.9.1. Общие положения160
1.9.2. Работа с объектом info160
Вопросы и задания163
1.10. Динамическое управление процессами163
1.10.1. Общие положения163
1.10.2. Порождение процессов164
1.10.3. Клиент-серверная связь168
1.10.4. Удаление связи процессов172
1.10.5. Связь через сокеты172
Вопросы и задания173
1.11. Односторонние коммуникации173
1.11.1. Общие положения173
1.11.2. Работа с окном174
1.11.3. Передача данных175
1.11.4. Синхронизация177
Вопросы и задания186
1.12. Внешние интерфейсы186
1.12.1. Обобщённые запросы186
1.12.2. Информация из статуса188
1.12.3. Нити189
Вопросы и задания191
1.13. Параллельный ввод/вывод192
1.13.1. Определения192
1.13.2. Работа с файлами194
1.13.3. Доступ к данным204
Вопросы и задания222
1.14. Обработка ошибок223
1.14.1. Общие положения223
1.14.2. Обработчики ошибок, связанные с коммуникаторами224
1.14.3. Обработчики ошибок, связанные с окнами225
1.14.4. Обработчики ошибок, связанные с файлами226
1.14.5. Дополнительные процедуры227
1.14.6. Коды и классы ошибок228
1.14.7. Вызов обработчиков ошибок231
Вопросы и задания233
 
Глава 2. Технология параллельного программирования OpenMP234
 
Алфавитный указатель по директивам, процедурам, опциям и переменным
окружения OpenMP
234
Директивы234
Опции234
Процедуры235
Переменные окружения235
2.1. Введение236
2.2. Основные понятия238
2.2.1. Компиляция программы238
2.2.2. Модель параллельной программы239
2.2.3. Директивы и процедуры240
2.2.4. Выполнение программы241
2.2.5. Замер времени242
Вопросы и задания243
2.3. Параллельные и последовательные области244
2.3.1. Директива parallel244
2.3.2. Сокращённая запись247
2.3.3. Переменные среды и вспомогательные процедуры247
2.3.4. Директива single255
2.3.5. Директива master258
Вопросы и задания260
2.4. Модель данных260
Вопросы и задания268
2.5. Распределение работы268
2.5.1. Низкоуровневое распараллеливание268
2.5.2. Параллельные циклы270
2.5.3. Параллельные секции281
2.5.4. Директива workshare285
2.5.5. Задачи (tasks)286
Вопросы и задания290
2.6. Синхронизация291
2.6.1. Барьер291
2.6.2. Директива ordered292
2.6.3. Критические секции293
2.6.4. Директива atomic295
2.6.5. Замки297
2.6.6. Директива flush302
Вопросы и задания304
2.7. Дополнительные переменные среды и процедуры304
2.8. Использование OpenMP307
 
Глава 3. Реализация параллельных алгоритмов310
 
3.1. Введение310
3.2. Простейшая вычислительная программа310
3.2.1. Реализация на OpenMP310
3.2.2. Реализация на MPI312
3.3. Параллельная реализация вычислительно сложных задач на примере
решения задачи перемножения плотных матриц
314
3.3.1. Постановка задачи314
3.3.2. Последовательная реализация315
3.3.3. Параллельная реализация317
3.3.4. Реализация на OpenMP318
3.3.5. Реализация на MPI321
 
Литература333

Книги на ту же тему

  1. Введение в параллельные методы решения задач: Учебное пособие, Якобовский М. В., 2013
  2. UNIX: взаимодействие процессов, Стивенс Р., 2002
  3. Современные языки и технологии параллельного программирования: Учебник, Гергель В. П., 2012
  4. Многоядерное программирование, Эхтер Ш., Робертс Д., 2010
  5. Численные методы, алгоритмы и программы. Введение в распараллеливание: Учебное пособие для вузов, Карпов В. Е., Лобанов А. И., 2014
  6. Параллельное программирование в среде MATLAB для многоядерных и многоузловых вычислительных машин: Учебное пособие, Кепнер Д., 2013
  7. Итерационные методы для разреженных линейных систем: Учебное пособие. — В 2-х томах. Том 1, Саад Ю., 2013
  8. Суперкомпьютерное моделирование в физике климатической системы: Учебное пособие, Лыкосов В. Н., Глазунов А. В., Кулямин Д. В., Мортиков Е. В., Степаненко В. М., 2012
  9. Параллельные вычислительные системы, Головкин Б. А., 1980
  10. Параллельная обработка информации: Т. 5: Проблемно-ориентированные и специализированные средства обработки информации, Малиновский Б. Н., Грицык В. В., ред., 1990
  11. Введение в алгоритмы параллельных вычислений, Молчанов И. Н., 1990
  12. Социальное моделирование — новый компьютерный прорыв (агент-ориентированные модели), Макаров В. Л., Бахтизин А. Р., 2013

© 1913—2013 КнигоПровод.Ruhttp://knigoprovod.ru