Модели параллельного программирования (+source code)
Book information
Description
М.: Солон-Пресс, 2012. - 384с., русский, ISBN: 978-5-91359-102-9, PDF, 10,81 МБ (Серия: Библиотека профессионала) (+source code)Книга посвящена рассмотрению некоторых высокоуровневых моделей параллельного и распределенного программирования. В порядке усложнения описываются несколько моделей внутренней организации параллельных программ: ярусно-параллельная форма программы, сети конечных автоматов, сети Петри, модель актеров, а также модель квантовых вычислений.Приводятся примеры программной реализации на C++ с использованием различных средств распараллеливания (OpenMP, MPI, POSIX Threads, Windows API). В каждом случае рассматриваются вопросы контекстнонезависимой реализации конструкций описываемой модели без привязки к конкретным задачам, а также приведены примеры решения с использованием такой реализации конкретных задач. Некоторые из описанных моделей (к примеру, модель актеров), в настоящий момент приобретают все большую популярность вследствие распространения основанных на их использовании языков и библиотек.Книга ориентирована на подготовленного читателя в области программирования. Будет полезна программистам, желающим освоить высокоуровневые подходы к организации параллельных и распределенных программ, студентам старших курсов, аспирантам и преподавателям технических ВУЗов, ведущим курсы параллельного программирования.ОглавлениеПредисловиеО проблеме параллельного программированияО целях изданияО содержанииОб используемой терминологииНекоторые вопросы стиляГлава1. Программные интерфейсы1.1 Интерфейс OpenMP1.1.1. Беглый взгляд под капот OpenMP1.1.2. Основные конструкции параллельного выполнения1.1.3. Некоторые вспомогательные директивы1.1.4. Разделение данных1.1.5. Runtime-функции1.1.6. Вычисление определенного интеграла1.2. Интерфейс передачи сообщений MPI1.2.1. Снова ряд Лейбница1.2.2. Краткое описание предоставляемых функций1.2.3. Распределение вычислений в однородной среде1.2.4. Некоторые вопросы распределения в неоднородной среде1.2.5. Умножение матрицы на вектор1.2.6. Перемножение матрицГлава2. Ярусно-параллельная форма программы2.1. Цель и механизм построения2.2. Варианты реализации механизма2.2.1. Поярусное выполнение комплекса работ2.2.2. Учет индивидуальных зависимостей работ2.3. Симуляция выполнения логических схемГлава3. Сети конечных автоматов3.1. Программирование конечных автоматов3.2. Параллелизм сетей конечных автоматов3.3. Пример программной реализации3.3.1. Реализация с использованием OpenMP3.3.2. Простая реализация с использованием MPI3.3.3. Реализация с поддержкой вложенных сетей3.4. Примеры сетей автоматов3.4.1. Параллельный сумматор3.4.2. Прямоугольный бильярдГлава4. Сети Петри4.1. Краткое введение в теорию сетей Петри4.1.1. Знакомство с сетями Петри4.1.2. Строго иерархические сети4.1.3. Параллельные вычисления и синхронизация4.1.4. Задача об обедающих философах4.1.5. Задача чтения-записи4.2. Программная реализация4.2.1. Функционирование строго иерархических сетей4.2.2. Выполнение параллельных процессов4.3. Некоторые примеры использования4.3.1. Реализация игры в жанре квест4.3.2. Обработка потоков данных4.3.3. Реализация задачи об обедающих философахГлава5. Модель актеров5.1. Описание модели актеров5.1.1. Первоначальное описание модели5.1.2. Язык SAL для описания поведения актеров5.1.3. Некоторые существующие модификации модели5.2. Различные варианты реализации5.2.1. Простая одноуровневая реализация5.2.2. Многопроцессный вариант5.2.3. Низкоуровневая многопоточная реализация5.2.4. Поддержка вложенных подсистем актеров5.3. Примеры решения некоторых задач5.3.1. Вычисление факториала5.3.2. Числа Фибоначчи5.3.3. Задача чтения-записи5.3.4. Вычисление количества максимальных значений5.3.5. Поиск выхода из лабиринтаГлава6. Квантовые вычисления6.1. Описание вычислительной модели6.1.1. Классические обратимые вычисления6.1.2. Квантовый бит и принцип суперпозиции6.1.3. Системы кубитов и квантовая запутанность6.1.4. Унитарные преобразования и квантовые схемы6.1.5. Измерение результата вычислений6.1.6. Параллелизм в квантовых вычислениях6.2. Симулятор квантового компьютера6.2.1. Виртуальный квантовый вычислитель6.2.2. Реализация базовых вентилей6.3. Алгоритм Дойча6.4. Полная реализация алгоритма Шора6.4.1. Общая схема и описание6.4.2. Модульное возведение в степень6.4.3. Квантовое преобразование Фурье6.4.4. Извлечение порядка из результата измеренияПриложение А. Шаблоны классов матрицы и вектораПриложение Б. Классы для выполнения комплексов работПриложение В. Классы для выполнения сетей конечных автоматовПриложение Г. Классы для выполнения сетей ПетриПриложение Д. Классы для выполнения систем актеровПриложение Е. Классы для симуляции квантовых вычисленийЛитература
Similar books
Современные методы и алгоритмы решения сложных задач на суперкомпьютерах
Декомпозиционные методы в задачах распределения вычислительных ресурсов многомашинных комплексов бортовой авионики
Параллельное программирование в среде MATLAB для многоядерных и многоуровневых вычислительных машин
DJVU
Parallel Programming and Optimization with Intel Xeon Phi Coprocessors
EPUB
Введение в распределенные вычисления
ПАРКС-JAVA система для паралельних обчислень на комп’ютерних мережах
Векторизация программ: теория, методы, реализация
DJVU