Параллельное программирование – так ли это сложно?
2024 /

Параллельное программирование – так ли это сложно?

Пол Маккинни
Книга исследует различные низжноуровневые механизмы и алгоритмы, лежащие в основе современных параллельных и конкурентных вычислений, в частности реализованные в ядре Linux. Рассмотрены примитивы синхронизации (мьютексы и блокировки), владение данными, валидация, копирование и запись, эвристические методы разработки параллельных и конкурентных алгоритмов, подбор аппаратного обеспечения и другие малоизвестные находки в области параллелизма. Также уделено внимание упрощению и оптимизации параллельных вычислений. Наконец, спрогнозированы возможные тенденции развития параллельного программирования с учётом современных разработок нового аппаратного обеспечения. Для специалистов по параллельному программированию, Linux, работе с памятью и ресурсами в операционных системах На фоне затухания закона Мура дальнейшее ускорение и масштабирование вычислений достижимо только через наращивание количества ядер и разработку новых параллельных и конкурентных алгоритмов. Основы этих технологий заложены более 50 лет назад, но на русском языке пока представлены только в академических работах и разрозненных материалах по конкретным языкам программирования, прежде всего С++. Общим знаменателем между этими разноуровневыми наработками является данная книга, в которой изложен полувековой научный и практический опыт автора. Книга посвящена низкоуровневому параллельному и конкурентному программированию. Особое внимание уделено малоизвестным проблемам проектирования параллельных систем, работе с высоконагруженными приложениями и ядром Linux. В книге рассмотрены: — Цели параллельного программирования и альтернативы этого подхода — Физические и аппаратные ограничения — Примитивы и средства конкурентного программирования: блокировки, подсчёт ссылок, синхронизация, мьютексы и др. — Отладка конкурентных программ, включая их формальную верификацию — Параллельное программирование в режиме реального времени — Экстремально низкоуровневые темы: упорядочивание памяти и атомарные операции — Примеры практических задач: подсчёт ссылок, выход из лабиринта, связные списки, хеш-таблицы и др. — Тенденции развития параллельного программирования
  • Издательство: БХВ
  • Страниц: 1072
  • ISBN: 978-5-9775-1927-4