Федотов И.Е.
Некоторые приемы параллельного программирования


Федотов И.Е. Некоторые приемы параллельного программирования: Учебное пособие. - М.: Изд-во МГИРЭА(ТУ), 2008. - 188 с.
ISBN 978-5-7339-0724-6
Ссылки для загрузки
Описание следующего издания
Book cover Title list Title backside

Ссылки для загрузки

Учебное пособие посвящено рассмотрению некоторых из основных существующих подходов к построению параллельных программ. Рассмотрение сопровождается приведением примеров на популярном языке программирования с использованием популярных современных средств и программных интерфейсов. Рассмотрены вопросы абстрактной программной реализации описанных подходов без привязки к конкретным задачам, а также приведены примеры решения с использованием такой реализации некоторых конкретных задач.

Пособие предназначено для студентов старших курсов и аспирантов, специализирующихся в области прикладной математики и численного моделирования.


Ссылки для загрузки

Описание

В связи с грядущим достижением полупроводниковыми компьютерами предела тактовых частот параллельное программирование как дисциплина приобретает все большую актуальность. Вследствие этого появляется немало публикаций, посвященных теоретическим вопросам распараллеливания последовательных программ, а также немало учебных пособий и статей, посвященных рассмотрению существующего инструментария. Помимо этого уже довольно давно создано немало моделей, успешно описывающих параллельное выполнение процессов и являющихся основой многих реальных разработок и инструментов параллельных вычислений. Таким моделям посвящено немало учебного материала теоретического характера, однако когда речь заходит о доступных примерах их практической реализации с использованием современных средств, ощущается довольно острый дефицит, в связи с чем, в силу консерватизма мышления многих программистов, использование таких моделей зачастую остается вне рассмотрения.

Настоящее пособие является попыткой восполнить указанную нишу. В нем описывается несколько теоретических подходов к организации параллельных вычислений. Для каждого подхода приведены примеры реализации с использованием различных средств распараллеливания. С этой целью в первой главе на простых примерах кратко описываются две популярных сегодня технологии распараллеливания последовательных программ - OpenMP и MPI. В остальных главах в порядке усложнения моделей излагаются рассматриваемые подходы : ярусно-параллельная форма программы, сети конечных автоматов, сети Петри. Описанными подходами не исчерпываются существующие модели и парадигмы параллельного программирования, однако они создают начальную базу для дальнейшего изучения моделей параллельных вычислений.

В пособии приводится исходный текст примеров на языке C++ с использованием библиотеки шаблонов STL, в связи с чем необходимо предварительное знакомство читателя с ними. В примерах реализации описанных подходов иллюстрируется использование технологий OpenMP и MPI, а также низкоуровневых программных интерфейсов Win32 API и POSIX Threads (pthreads). Последние используются в случаях, когда средства высокоуровневых интерфейсов оказываются недостаточно гибкими. К примеру, так реализована сеть Петри, осуществляющая параллельное выполнение длительных переходов.

Для компиляции приведенных примеров программ могут быть использованы компиляторы MS Visual C++ версии от 8.0 или GNU C++. Для компиляции в среде MS Windows программ, использующих функции интерфейса POSIX Threads, возможно использование библиотеки Pthreads-w32 или эмулятора Cygwin.


Ссылки для загрузки

Оглавление


Ссылки для загрузки

Полный текст: PDF (1.56 MB), он же в ZIP-файле (1.32 MB)
Полный текст: PostScript (7.42 MB), он же в GZip-файле (1.28 MB)
Электронная книга: DjVu (0.98 MB)
Исходные тексты примеров программ, приведенных и описанных в пособии, в ZIP-файле (96 KB)

Исходные тексты примеров программ к следующему изданию книги в ZIP-файле (296 KB)

Также для самостоятельной печати предлагается вариант, разбитый на буклеты:
Введение-Глава1: ZIP(PDF) (651 KB)
Глава2-Глава3: ZIP(PDF) (650 KB)
Глава4-Заключение-Приложения-Библиографический список: ZIP(PDF) (644 KB)
Примечание. Для формирования буклетов потребуется принтер с двусторонней печатью, а также специальный степлер (альтернатива - мебельный степлер / скобозабивной пистолет). Каждый буклет вмещает в среднем около 16 листов A4.

Прочие ссылки

MinGW - Портированный для систем семейства Windows набор компиляторов GCC
SciTE - Многофункциональный текстовый редактор для разработчика
Сygwin - Эмулятор UNIX-среды для Windows-систем
MPICH2 - Одна из свободно распространяемых реализаций интерфейса MPI
MPI 1.1 - Спецификация интерфейса MPI версии 1.1
OpenMP - Спецификации интерфейса OpenMP
POSIX Threads - Спецификации интерфейса POSIX Threads
Irtegov_Tech - Лекции по программированию с использованием POSIX Threads
parallel.ru, cluster.bsu.by - Другие учебные материалы по теме параллельных вычислений
softcraft.ru - Некоторые публикации по теме абстрактных моделей вычислений

Гостевая книга
Персональный форум
Связаться с автором

Copyright © 2008 Ilyh&So
Используются технологии uCoz