Библиотека knigago >> Компьютеры: Разработка ПО >> Параллельное и распределенное программирование >> Основы многопоточного и параллельного программирования

Евгения Дмитриевна Карепова - Основы многопоточного и параллельного программирования

Основы многопоточного и параллельного программирования
Книга - Основы многопоточного и параллельного программирования.  Евгения Дмитриевна Карепова  - прочитать полностью в библиотеке КнигаГо
Название:
Основы многопоточного и параллельного программирования
Евгения Дмитриевна Карепова

Жанр:

Учебники и самоучители по компьютеру, Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Параллельное и распределенное программирование

Изадано в серии:

неизвестно

Издательство:

СФУ

Год издания:

ISBN:

978-5-7638-3385-0

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Основы многопоточного и параллельного программирования"

Рассматриваются современные подходы к разработке программного обеспечения для высокопроизводительных параллельных вычислительных систем. Приводятся общие сведения об архитектурах современных суперкомпьютеров и методах их программирования. Описываются особенности ряда популярных средств разработки многопоточных и параллельных программ и их использования для эффективного решения научных и прикладных задач.

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

Читаем онлайн "Основы многопоточного и параллельного программирования". [Страница - 3]

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

5

Предисловие

Третья глава посвящена практическому применению потоков для
операционной системы Windows с использованием WinAPI. Дается общее
понятие объекта ядра ОС Windows, процесса и потока. Приводится описание общей структуры создаваемой многопоточной программы. Обсуждаются особенности реализации проблемы взаимного исключения потоков
одного процесса, т. е. потоков, находящихся в общем адресном пространстве
(синхронизация в пользовательском режиме), и общий случай синхронизации потоков, относящихся, может быть, к разным процессам, с помощью
объектов ядра. Рассмотрен один из простых механизмов организации связи
между потоками разных процессов, например, для обмена данными. Автор
благодарит аспиранта Г. А. Федорова за помощь в отборе материала и отладке кода ряда примеров.
Технология OpenMP создания параллельных программ для ВС с общей памятью обсуждается в четвертой главе. В отличие от реализации
многопоточности в языке Си с помощью функций WinAPI, или библиотек
Pthread, или Qt библиотека OpenMP в большей степени рассчитана
на прикладного программиста, позволяя быстро создавать короткие и простые
многопоточные приложения с помощью директив компилятора из последовательного кода. Знание основ технологии OpenMP полезно еще и по той
причине, что ее современные реализации обеспечивают поддержку программирования для комбинированных ПВС, содержащих как общую, так
и распределенную память.
Общие сведения о разработке параллельных программ для систем
с распределенной памятью на основе механизма передачи сообщений
приводятся в пятой главе. Кратко обсуждаются вопросы, связанные с исследованием информационных зависимостей и оценками внутреннего
параллелизма алгоритмов, даются понятия ускорения, эффективности,
масштабируемости. На ряде примеров показаны различные стратегии использования вычислительных ресурсов ПВС, взаимодействующих между
собой через механизм передачи сообщений. Рассмотрены достоинства
и недостатки каждого из подходов. Описаны двухточечные и коллективные взаимодействия процессов, подходы к оценке времени, необходимого
на передачу сообщений в кластерных системах. В конце главы рассмотрены основные задачи вычислительной математики и схемы возможных
параллельных алгоритмов для их решения.
В шестой главе рассмотрены основы программирования для ВС
с распределенной памятью с помощью библиотеки MPI, которая соответствует всем требованиям одноименного стандарта средств организации
передачи сообщений (message passing interface – MPI). Описана архитектурная парадигма MPI, ее связь с крупноблочным распараллеливанием.
Обсуждаются вопросы организации вычислений (использование комму6

Предисловие

никаторов, производных типов, виртуальных топологий) и взаимодействий
процессов (двухточечные и коллективные обмены, операции приведения
и барьерной синхронизации). Отметим, что хотя в тексте и приведены синтаксис и характеристика большинства функций MPI для языка Си, главу не
следует рассматривать как описание стандарта MPI. Все вводимые концепции, понятия и методы проиллюстрированы примерами. Автор благодарит А. В. Малышева за предоставленный материал и полезные обсуждения по теме главы.
Знания и навыки, полученные при изучении курса, позволяют
в дальнейшем перейти к более детальному освоению инструментальных
средств разработки параллельных программ и методов эффективного распараллеливания практических и научных задач.
Базовый курс «Параллельное программирование» читается в Институте математики и фундаментальной информатики Сибирского федерального университета в течение восьми лет. В это же время автором читались
и более узконаправленные спецкурсы и курсы для магистрантов и аспирантов, материалы которых также включены в пособие.
Следует отметить, что при разработке курса и подготовке настоящего
учебного пособия автором использовались, прежде всего, учебные пособия
и --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.