М.: Солон-Пресс, 2012. — 384 с. — (Библиотека профессионала). — ISBN 978-5-91359-102-9. (+source code).
Книга посвящена рассмотрению некоторых высокоуровневых моделей параллельного и распределенного программирования. В порядке усложнения описываются несколько моделей внутренней организации параллельных программ: ярусно-параллельная форма программы, сети конечных автоматов, сети Петри, модель актеров, а также модель квантовых вычислений.
Приводятся примеры программной реализации на C++ с использованием различных средств распараллеливания (OpenMP, MPI, POSIX Threads, Windows API). В каждом случае рассматриваются вопросы контекстнонезависимой реализации конструкций описываемой модели без привязки к конкретным задачам, а также приведены примеры решения с использованием такой реализации конкретных задач. Некоторые из описанных моделей (к примеру, модель актеров), в настоящий момент приобретают все большую популярность вследствие распространения основанных на их использовании языков и библиотек.
Книга ориентирована на подготовленного читателя в области программирования. Будет полезна программистам, желающим освоить высокоуровневые подходы к организации параллельных и распределенных программ, студентам старших курсов, аспирантам и преподавателям технических ВУЗов, ведущим курсы параллельного программирования.
Предисловие
О проблеме параллельного программирования
О целях издания
О содержании
Об используемой терминологии
Некоторые вопросы стиля
Программные интерфейсыИнтерфейс OpenMP
Беглый взгляд под капот OpenMP
Основные конструкции параллельного выполнения
Некоторые вспомогательные директивы
ение данных
Runtime-функции
Вычисление определенного интегралаИнтерфейс передачи сообщений MPI
Снова ряд Лейбница
Краткое описание предоставляемых функций
Распределение вычислений в однородной среде
Некоторые вопросы распределения в неоднородной среде
Умножение матрицы на вектор
Перемножение матрицЯрусно-параллельная форма программыЦель и механизм построения
Варианты реализации механизма
Поярусное выполнение комплекса работ
Учет индивидуальных зависимостей работСимуляция выполнения логических схем
Сети конечных автоматовПрограммирование конечных автоматов
Параллелизм сетей конечных автоматов
Пример программной реализации
Реализация с использованием OpenMP
Простая реализация с использованием MPI
Реализация с поддержкой вложенных сетейПримеры сетей автоматов
Параллельный сумматор
Прямоугольный бильярдСети ПетриКраткое введение в теорию сетей Петри
Знакомство с сетями Петри
Строго иерархические сети
Параллельные вычисления и синхронизация
Задача об обедающих философах
Задача чтения-записиПрограммная реализация
Функционирование строго иерархических сетей
Выполнение параллельных процессовНекоторые примеры использования
Реализация игры в жанре квест
Обработка потоков данных
Реализация задачи об обедающих философахМодель актеровОписание модели актеров
Первоначальное описание модели
Язык SAL для описания поведения актеров
Некоторые существующие модификации моделиРазличные варианты реализации
Простая одноуровневая реализация
Многопроцессный вариант
Низкоуровневая многопоточная реализация
Поддержка вложенных подсистем актеровПримеры решения некоторых задач
Вычисление факториала
Числа Фибоначчи
Задача чтения-записи
Вычисление количества максимальных значений
Поиск выхода из лабиринтаКвантовые вычисленияОписание вычислительной модели
Классические обратимые вычисления
Квантовый бит и принцип суперпозиции
Системы кубитов и квантовая запутанность
Унитарные преобразования и квантовые схемы
Измерение результата вычислений
Параллелизм в квантовых вычисленияхСимулятор квантового компьютера
Виртуальный квантовый вычислитель
Реализация базовых вентилейАлгоритм Дойча
Полная реализация алгоритма Шора
Общая схема и описание
Модульное возведение в степень
Квантовое преобразование Фурье
Извлечение порядка из результата измеренияПриложения.Шаблоны классов матрицы и вектора
Классы для выполнения комплексов работ
Классы для выполнения сетей конечных автоматов
Классы для выполнения сетей Петри
Классы для выполнения систем актеров
Классы для симуляции квантовых вычислений
Литература