Книга посвящена рассмотрению некоторых высокоуровневых моделей параллельного и распределенного программирования. В порядке усложнения описываются несколько моделей внутренней организации параллельных программ: ярусно-параллельная форма программы, сети конечных автоматов, сети Петри, модель актеров, а также модель квантовых вычислений. Приводятся примеры программной реализации на C++ с использованием различных средств распараллеливания (OpenMP, MPI, POSIX Threads, Windows API). В каждом случае рассматриваются вопросы контекстнонезависимой реализации конструкций описываемой модели без привязки к конкретным задачам, а также приведены примеры решения с использованием такой реализации конкретных задач. Некоторые из описанных моделей (к примеру, модель актеров), в настоящий момент приобретают все большую популярность вследствие распространения основанных на их использовании языков и библиотек. Книга ориентирована на подготовленного читателя в области программирования. Будет полезна программистам, желающим освоить высокоуровневые подходы к организации параллельных и распределенных программ, студентам старших курсов, аспирантам и преподавателям технических ВУЗов, ведущим курсы параллельного программирования.
Оглавление
Предисловие О проблеме параллельного программирования О целях издания О содержании Об используемой терминологии Некоторые вопросы стиля Глава 1. Программные интерфейсы 1.1 Интерфейс OpenMP 1.1.1. Беглый взгляд под капот OpenMP 1.1.2. Основные конструкции параллельного выполнения 1.1.3. Некоторые вспомогательные директивы 1.1.4. Разделение данных 1.1.5. Runtime-функции 1.1.6. Вычисление определенного интеграла 1.2. Интерфейс передачи сообщений MPI 1.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. Реализация с использованием OpenMP 3.3.2. Простая реализация с использованием MPI 3.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. Извлечение порядка из результата измерения Приложение А. Шаблоны классов матрицы и вектора Приложение Б. Классы для выполнения комплексов работ Приложение В. Классы для выполнения сетей конечных автоматов Приложение Г. Классы для выполнения сетей Петри Приложение Д. Классы для выполнения систем актеров Приложение Е. Классы для симуляции квантовых вычислений Литература
Разместите ссылку на эту страницу в социальных сетях. Так о ней узнают тысячи человек:
Facebook
Twitter
Мой мир
Вконтакте
Одноклассники
Нашли ошибку? Сообщите администрации сайта: Выберите один из разделов меню и, если необходимо, напишите комментарий
За ложную информацию бан на месяц
Разместите, пожалуйста, ссылку на эту страницу на своём веб-сайте:
Код для вставки на сайт или в блог: Код для вставки в форум (BBCode): Прямая ссылка на эту публикацию:
Предлагаются методы параллельных вычислений при решении ряда задач оптимизации, методы организации оптимальных параллельных вычислительных процессов управления и информационного обслуживания, методы диспетчирования и синхронизации. Обсуждается применение методов параллельного программирования при разработке GRID-технологий.
Рост сложных задач, решение которых связано с применением современных ИТ-технологий, ведет к необходимости использования параллельных вычислений. Параллельные вычисления носят междисциплинарный характер. Они затрагивают, в частности, такие области, как численные методы, структуры и алгоритмы обработки данных, аппаратное и программное обеспечение, с ...
Настоящая книга представляет собой введение в методы программирования параллельных ЭВМ. Основной ее целью является научить читателя самостоятельно разрабатывать максимально эффективные программы для таких компьютеров. Вопросы распараллеливания конкретных алгоритмов рассматриваются на многочисленных примерах.
Данный материал НЕ НАРУШАЕТ авторские права никаких физических или юридических лиц. Если это не так - свяжитесь с администрацией сайта. Материал будет немедленно удален. Электронная версия этой публикации предоставляется только в ознакомительных целях. Для дальнейшего её использования Вам необходимо будет приобрести бумажный (электронный, аудио) вариант у правообладателей.