Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 636046)
Контекстум
Руконтекст антиплагиат система

Основы многопоточного и параллельного программирования (250,00 руб.)

0   0
Первый авторКарепова Е. Д.
ИздательствоСиб. федер. ун-т
Страниц358
ID664658
АннотацияРассматриваются современные подходы к разработке программного обеспечения для высокопроизводительных параллельных вычислительных систем. Приводятся общие сведения об архитектурах современных суперкомпьютеров и методах их программирования. Описываются особенности ряда популярных средств разработки многопоточных и параллельных программ и их использования для эффективного решения научных и прикладных задач.
Кем рекомендованоУМО по классическому университетскому образованию в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлениям ВПО 010400 «Прикладная математика и информатика» и 010300 «Фундаментальная информатика и информационные технологии»
Кому рекомендованоПредназначено для студентов, аспирантов, инженеров и исследователей, работающих в области прикладной математики, вычислительной физики и высокопроизводительных параллельных вычислений.
ISBN978-5-7638-3385-0
УДК004.272(07)
ББК32.973я73
Карепова, Е.Д. Основы многопоточного и параллельного программирования : учеб. пособие / Е.Д. Карепова .— Красноярск : Сиб. федер. ун-т, 2016 .— 358 с. — ISBN 978-5-7638-3385-0 .— URL: https://rucont.ru/efd/664658 (дата обращения: 17.05.2024)

Предпросмотр (выдержки из произведения)

Основы_многопоточного_и_параллельного_программирования.pdf
Оглавление Министерство образования и науки Российской Федерации Сибирский федеральный университет Федеральное государственное бюджетное учреждение науки «Институт вычислительного моделирования Сибирского отделения Российской академии наук» Сибирский научно-образовательный центр суперкомпьютерных технологий Е. Д. Карепова ОСНОВЫ МНОГОПОТОЧНОГО И ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ Допущено УМО по классическому университетскому образованию в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлениям ВПО 010400 «Прикладная математика и информатика» и 010300 «Фундаментальная информатика и информационные технологии», 23 марта 2015 г. Красноярск СФУ 2016 1
Стр.2
Оглавление УДК 004.272(07) ББК 32.973я73 К225 Карепова, Е. Д. К225 Основы многопоточного и параллельного программирования : учеб. пособие / Е. Д. Карепова. – Красноярск : Сиб. федер. ун-т, 2016. – 356 с. ISBN 978-5-7638-3385-0 Рассматриваются современные подходы к разработке программного обеспечения для высокопроизводительных параллельных вычислительных систем. Приводятся общие сведения об архитектурах современных суперкомпьютеров и методах их программирования. Описываются особенности ряда популярных средств разработки многопоточных и параллельных программ и их использования для эффективного решения научных и прикладных задач. Предназначено для студентов, аспирантов, инженеров и исследователей, работающих в области прикладной математики, вычислительной физики и высокопроизводительных параллельных вычислений. Работа выполнена при частичной поддержке Российского научного фонда (проект № 14-11-00147) Электронный вариант издания см.: http://catalog.sfu-kras.ru ISBN 978-5-7638-3385-0 2 УДК 004.272(07) ББК 32.973я73 © Сибирский федеральный университет, 2016
Стр.3
Оглавление ОГЛАВЛЕНИЕ ПРЕДИСЛОВИЕ .................................................................................................. 5 ВВЕДЕНИЕ .......................................................................................................... 8 Г л а в а 1. ОБЗОР ОБЛАСТИ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ ..... 10 1.1. Основные архитектурные особенности построения параллельной вычислительной среды ............................... 10 1.2. Основные классы современных параллельных компьютеров .............................................. 17 1.3. Разработка параллельных приложений ............................. 25 1.4. Программные средства ........................................................ 29 1.5. Парадигмы параллельных приложений ............................ 34 Контрольные вопросы и задания .............................................. 51 Задачи ........................................................................................... 52 Г л а в а 2. ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ ДЛЯ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ С ОБЩЕЙ ПАМЯТЬЮ ............................................................ 54 2.1. Анатомия потока .................................................................. 54 2.2. Синхронизация потоков. Оператор ожидания .................. 58 2.3. Взаимное исключение. Задача критической секции ........ 60 2.4. Сигнализирующие события. Барьерная синхронизация ...................................................................... 65 2.5. Семафоры .............................................................................. 73 2.6. Мониторы ............................................................................. 85 Контрольные вопросы и задания .............................................. 91 Задачи ........................................................................................... 93 Г л а в а 3. УПРАВЛЕНИЕ ПОТОКАМИ С ПОМОЩЬЮ ФУНКЦИЙ WinAPI ..................................... 95 3.1. Объекты ядра ........................................................................ 95 3.2. Процессы ............................................................................. 101 3.3. Потоки ................................................................................. 108 3.4. Синхронизация потоков в пользовательском режиме ... 113 3.5. Синхронизация потоков с помощью объектов ядра ...... 120 3.6. Проблемы условной синхронизации ............................... 128 3.7. Проецируемые в память файлы ........................................ 138 3.8. Совместный доступ процессов к данным через механизм проецирования ...................... 144 Контрольные вопросы и задания ............................................ 146 Задачи ......................................................................................... 147 3
Стр.4
Оглавление Г л а в а 4. ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ OpenMP ............ 153 4.1. Программная модель OpenMP .......................................... 153 4.2. Модель памяти OpenMP .................................................... 156 4.3. Среда выполнения OpenMP-программы ......................... 158 4.4. Директива omp parallel ..................................................... 164 4.5. Распределение работы в параллельной области по нитям .............................................................................. 171 4.6. Директивы синхронизации ............................................... 191 4.7. Переменные среды и функции времени выполнения .... 204 4.8. Спецификации стандарта OpenMP v. 4.0 ........................ 210 4.9. Оптимизация программ OpenMP ..................................... 212 4.10. Ограничения OpenMP...................................................... 213 Контрольные вопросы и задания ............................................ 215 Задачи ......................................................................................... 215 Г л а в а 5. СОГЛАСОВАННОЕ ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ ...................... 221 5.1. Проблемы программирования для вычислительных систем с распределенной памятью ............................................... 221 5.2. Оценка эффективности параллельных алгоритмов ....... 225 5.3. Реализация базовых алгоритмов вычислительной математики ............................................ 248 5.4. Проблемы выбора эффективной параллельной реализации ................................................. 272 Контрольные вопросы и задания ............................................ 289 Г л а в а 6. ОСНОВЫ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ MPI ............................................... 291 6.1. Архитектурная парадигма MPI ........................................ 291 6.2. Обрамляющие и информационные функции MPI .......... 293 6.3. MPI и крупноблочное распараллеливание ...................... 294 6.4. Организация вычислений .................................................. 300 6.5. Организация взаимодействий процессов ........................ 311 6.6. Повышение эффективности MPI-программ .................... 335 Контрольные вопросы и задания ............................................ 338 Задачи ......................................................................................... 340 БИБЛИОГРАФИЧЕСКИЙ СПИСОК .......................................................... 347 4
Стр.5

Облако ключевых слов *


* - вычисляется автоматически
Антиплагиат система на базе ИИ