Аннотация
Книга посвящена рассмотрению некоторых высокоуровневых моделей параллельного и распределенного программирования. В порядке усложнения описываются несколько моделей внутренней организации параллельных программ: ярусно-параллельная форма программы, сети конечных автоматов, сети Петри, модель актеров, а также модель квантовых вычислений. Приводятся примеры программной реализации на C++ с использованием различных средств распараллеливания (OpenMP, MPI, POSIX Threads, Windows API). В каждом случае рассматриваются вопросы контекстно-независимой реализации конструкций описываемой модели без привязки к конкретным задачам, а также приведены примеры решения с использованием такой реализации некоторых конкретных задач. Некоторые из описанных моделей (к примеру, модель актеров), в настоящий момент приобретают все большую популярность вследствие распространения основанных на ее использовании языков и библиотек.
Книга ориентирована на подготовленного читателя в области программирования. Будет полезна программистам, желающим освоить высокоуровневые подходы к организации параллельных и распределенных программ, студентам старших курсов, аспирантам и преподавателям технических ВУЗов, преподающим параллельное программирование.
Вот уже несколько лет, как современные компьютеры вплотную приблизились к своему пределу тактовых частот. Производительность процессоров (точнее, их отдельных ядер) перестала нарастать сказочными темпами, и теперь остается возможность обеспечить дальнейшее повышение вычислительных мощностей лишь за счет увеличения их количества: производительность компьютеров начала расти "вширь", а не "в высоту". В связи с этим параллельное программирование уже перестало быть узкоспециализированной дисциплиной для высокопроизводительных вычислений и приобретает все большую актуальность для широких масс представителей программистского сообщества. Есть немало публикаций, посвященных рассмотрению архитектур параллельных вычислительных систем и теоретическим вопросам распараллеливания последовательных алгоритмов. Также существует достаточно учебных пособий и статей, посвященных рассмотрению существующих технологий, программных интерфейсов и библиотек. В то же время, довольно давно создано немало моделей, успешно описывающих выполнение параллельных процессов, которые уже являются основой многих программных технологий и некоторых не слишком популярных инструментов построения параллельных программ. Таким моделям посвящено немало учебного материала теоретического характера, однако ощущается некоторый дефицит в области практического их рассмотрения с доступными примерами программной реализации на основе современных средств. В результате освещения таких моделей лишь с теоретической точки зрения они, порой, остаются вне практического арсенала программиста, отчего возможность использования их при решении конкретной задачи зачастую даже не рассматривается. Настоящее издание стремится в какой-то степени восполнить указанную нишу и попытаться исправить такое положение.
В книге приводятся исходные тексты примеров на языке C++ с использованием библиотеки шаблонов STL, в связи с чем необходимо предварительное знакомство читателя с ними. В примерах реализации описанных подходов иллюстрируется использование технологий OpenMP и MPI, а также низкоуровневых программных интерфейсов Win32 API и POSIX Threads (pthreads). Последние используются в случаях, когда средства высокоуровневых интерфейсов оказываются недостаточно гибкими.
Для компиляции приведенных примеров программ могут быть использованы компиляторы MS Visual C++ версии от 8.0 (2005) или GNU C++. Для компиляции в среде MS Windows программ, использующих функции интерфейса POSIX Threads, возможно использование библиотеки Pthreads-w32 или эмулятора Cygwin.


![Описан язык Python 3: типы данных, операторы, условия, циклы, регулярные выражения, функции, инструменты объектно-ориентированного программирования, работа с файлами... Python 3 и PyQt 5 [Разработка приложений]](https://www.rulit.me/data/programs/images/python-3-i-pyqt-5-razrabotka-prilozhenij_526357.jpg)

![Возможно, встречаются еще менеджеры, которые полагают, что управление — это собрания, программы обучения и повышения качества продукции и разнообразные отчеты.... Deadline [Роман об управлении проектами]](https://www.rulit.me/data/programs/images/deadline-roman-ob-upravlenii-proektami_561223.jpg)
![Few books on software project management have been as influential and timeless as The Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project... The Mythical Man-Month: Essays on Software Engineering [Anniversary Edition]](https://www.rulit.me/data/programs/images/the-mythical-man-month-essays-on-software-engineering-annive_492687.jpg)


Комментарии к книге "Модели параллельного программирования"