К. Ю. Богачёв
ОСНОВЫ
параллельного
программирования
3-е издание (электронное)
%
Москва
БИНОМ. Лаборатория знаний
2015
УДК 004. 65
ББК 32. 073
Б73
Богачёв К· Ю·
Б73 Основы параллельного программирования [Электронный
ресурс] : учебное пособие / К. Ю. Богачёв. — 3-е изд. (эл. ). —
Электрон, текстовые дан. (1 файл pdf: 345 с). — М. : БИНОМ. Лаборатория знаний, 2015. — (Математика). — Систем,
требования: Adobe Reader XI ; экран 10". ISBN 978-5-9963-2995-3
Данная книга представляет собой введение в методы
программирования для параллельных ЭВМ. Основной ее целью является научить читателя самостоятельно
разрабатывать максимально эффективные программы для таких
компьютеров. Вопросы распараллеливания конкретных алгоритмов
рассмотрены на многочисленных примерах программ на языке С- В основу
книги положен курс лекций для студентов
механико-математического факультета МГУ им. М. В. Ломоносова. Для студентов, аспирантов, научных работников, программистов
и всех, кто хочет научиться разрабатывать программы для
параллельных ЭВМ. УДК 004. 65
ББК 32. 073
Деривативное электронное издание на основе печатного
аналога: Основы параллельного программирования : учебное
пособие / К. Ю. Богачёв. — 2-е изд. — М. : БИНОМ. Лаборатория знаний,
2013. - 342 с. : ил. - (Математика). - ISBN 978-5-9963-1616-8. В соответствии со ст. 1299 и 1301 ГК РФ при устранении
ограничений, установленных техническими средствами
защиты авторских прав, правообладатель вправе требовать
от нарушителя возмещения убытков или выплаты компенсации
ISBN 978-5-9963-2995-3 © БИНОМ. Лаборатория знаний, 2003
Оглавление
Предисловие 7
Порядок чтения 9
Глава 1, Для нетерпеливого читателя 10
1. 1. Последовательная программа 10
1. 2. Ускорение работы за счет параллелизма 12
1. 3. Параллельная программа, использующая процессы . 13
1. 4. Параллельная программа, использующая задачи ... . 18
1. 5. Параллельная программа, использующая MPI 21
Глава 2. Пути повышения производительности процессоров ... 24
2. 1. CISC- и RISC-процессоры 24
2.
2. Основные черты RISC-архитектуры 25
2. 3. Конвейеризация 26
2. 4. Кэш-память 34
2. 5. Многопроцессорные архитектуры 39
2. 5. 1. Основные архитектуры 39
2. 5. 2. Комбинированные архитектуры 40
2. 5. 3. Обанкротившиеся архитектуры 43
2. 6. Поддержка многозадачности и многопроцессорности 44
2. 7. Использование параллелизма процессора для
повышения эффективности программ 45
Глава 3. Пути повышения производительности оперативной
памяти 61
Глава 4. Организация данных во внешней памяти 64
4
Оглавление
Глава 5. Основные положения бб
5. 1. Основные определения бб
5. 2. Виды ресурсов 72
5. 3. Типы взаимодействия процессов 73
5. 4. Состояния процесса 77
Глава 6. Стандарты на операционные системы UNIX 79
6. 1. Стандарт BSD 4. 3 79
6. 2. Стандарт UNIX System V Release 4 79
6. 3. Стандарт POSIX 1003 80
6. 4. Стандарт UNIX X/Open 80
Глава 7. Управление процессами 81
7. 1. Функция fork 81
7. 2. Функции execl, execv 84
7. 3. Функция waitpid 84
7. 4. Функция kill 87
7. 5. Функция signal 88
Глава 8. Синхронизация и взаимодействие процессов 96
8. 1.