Книга: Богачёв К. Ю. «Основы параллельного программирования»

Основы параллельного программирования

Серия: "Математика"

Данная книга представляет собой введение в методы программирования для параллельных ЭВМ.
Основной ее целью является научить читателя самостоятельно разрабатывать максимально эффективные программы для таких компьютеров.
Вопросы распараллеливания конкретных алгоритмов рассмотрены на многочисленных примерах программ на языке С. В основу книги положен курс лекций для студентов механико-математического факультета МГУ им. М. В. Ломоносова.
Для студентов, аспирантов, научных работников, программистов и всех, кто хочет научиться разрабатывать программы для параллельных ЭВМ.

Содержание:

Предисловие...... 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 Глава 5. Основные положения...... 66 5. 1. Основные определения...... 66 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. Разделяемая память...... 97 8. 1. 1. Функция shmget...... 98 8. 1. 2. Функция shmat...... 99 8. 1. 3. Функция shmctl...... 99 8. 2. Семафоры...... 100 8. 2. 1. Функция semget...... 103 8. 2. 2. Функция semop...... 103 8. 2. 3. Функция semctl...... 104 8. 2. 4. Пример использования семафоров и разделяемой памяти...... 104 8. 3. События...... 120 8. 4. Очереди сообщений(почтовые ящики)...... 122 8. 4. 1. Функция msgget...... 124 8. 4. 2. Функция msgsnd...... 124 8. 4. 3. Функция msgrcv...... 125 8. 4. 4. Функция msgctl...... 126 8. 4. 5. Пример использования очередей...... 126 8. 4. 6. Функция pipe...... 133 8. 5. Пример многопроцессной программы, вычисляющей произведение матрицы на вектор...... 135 Глава 9. Управление задачами (threads)...... 156 9. 1. Функция pthread_create...... 156 9. 2. Функция pthread_join...... 157 9. 3. Функция sched_yield...... 157 Глава 10. Синхронизация и взаимодействие задач...... 158 10. 1. Объекты синхронизации типа mutex...... 158 10. 1. 1. Функция pthread_mutex_init...... 161 10. 1. 2. Функция pthread_mutex_lock...... 162 10. 1. 3. Функция pthread_mutex_trylock...... 162 10. 1. 4. Функция pthread_mutex_unlock...... 162 10. 1. 5. Функция pthread_mutex_destroy...... 163 10. 1. 6. Пример использования mutex...... 163 10. 2. Пример multithread-программы, вычисляющей определенный интеграл...... 168 10. 3. Объекты синхронизации типа condvar...... 168 10. 3. 1. Функция pthread_cond_init...... 170 10. 3. 2. Функция pthread_cond_signal...... 171 10. 3. 3. Функция pthread_cond_broadcast...... 171 10. 3. 4. Функция pthread_cond_wait...... 172 10. 3. 5. Функция pthread_cond_destroy...... 172 10. 3. 6. Пример использования condvar...... 172 10. 4. Пример multithread-программы, вычисляющейпро изведение матрицы на вектор...... 178 10. 5. Влияние дисциплины доступа к памяти на эффективность параллельнойпрограммы...... 192 10. 6. Пример multithread-программы, решающей задачу Дирихле для уравнения Пуассона...... 202 Глава 11. Интерфейс MPI (Message Passing Interface)...... 232 11. 1. Общее устройство MPI-программы...... 232 11. 2. Сообщения...... 234 11. 3. Коммуникаторы...... 237 11. 4. Попарный обмен сообщениями...... 238 11. 5. Операции ввода–вывода в MPI-программах...... 240 11. 6. Пример простейшей MPI-программы...... 242 11. 7. Дополнительные функции для попарного обмена сообщениями...... 243 11. 8. Коллективный обмен сообщениями...... 250 11. 9. Пример MPI-программы, вычисляющей определенный интеграл...... 256 11. 10. Работа с временем...... 259 11. 11. Пример MPI-программы, вычисляющей произведение матрицы на вектор...... 261 11. 12. Дополнительные функции коллективного обмена сообщениями для работы с массивами...... 273 11. 13. Пересылка структур данных...... 277 11. 13. 1. Пересылка локализованных разнородных данных...... 277 11. 13. 2. Пересылка распределенных однородных данных...... 288 11. 14. Ограничение коллективного обмена на подмножество процессов...... 290 11. 15. Пример MPI-программы, решающей задачу Дирихле для уравнения Пуассона...... 292 Источники дополнительной информации...... 323 Программа курса...... 325 Список задач...... 329 Указатель русских терминов...... 334 Указатель английских терминов...... 336 Список иллюстраций...... 339 Список таблиц...... 340 Список примеров...... 341

Издательство: "БИНОМ. Лаборатория знаний" (2015)

ISBN: 9785996329953

Другие книги автора:

КнигаОписаниеГодЦенаТип книги
Основы параллельного программированияДанная книга представляет собой введение в методы программирования для параллельных ЭВМ. Основной ее целью… — Бином. Лаборатория знаний, (формат: 60x90/16, 342 стр.) ВХНРЦ имени академика И. Э. Грабаря в документах и воспоминаниях Подробнее...2014423бумажная книга
Основы параллельного программированияДанная книга представляет собой введение в методы программирования для параллельных ЭВМ. Основной ее целью… — Бином. Лаборатория знаний, Подробнее...2018539бумажная книга

См. также в других словарях:

  • Паскаль (язык программирования) — Эта статья или раздел нуждается в переработке. В Паскале нет модулей, ООП и прочих новомодных веяний. Описание расширений должно присутствовать только в статьях о соответ …   Википедия

  • Модель акторов — В компьютерных науках модель акторов представляет собой математическую модель параллельных вычислений, которая трактует понятие «актор» как универсальный примитив параллельного численного расчёта: в ответ на сообщения, которые он получает, актор… …   Википедия

  • Институт автоматики и вычислительной техники МЭИ — Институт автоматики и вычислительной техники Московского энергетического института (технического университета) …   Википедия

  • Zonnon — Для улучшения этой статьи желательно?: Проставить шаблон карточку, который существует для предмета статьи. Пример использования шаблона есть в статьях на похожую тематику …   Википедия

  • Сравнение C Sharp и Java — Правильный заголовок этой статьи  Сравнение C# и Java. Он показан некорректно из за технических ограничений. Сравнения языков программирования Общее сравнение Основной синтаксис Основные инструкции Массивы Ассоциативные массивы Операции со… …   Википедия

  • PascalABC.NET — PascalABC Семантика: императивная Класс языка: мультипарадигменный: структурное, объектно ориентированное, обобщённое, процедурное программирование Тип исполнения: компилятор Появился в: 2002 …   Википедия

Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»