Параллельное программирование для мультиядерных и кластерных систем
Здесь можно купить книгу "Параллельное программирование для мультиядерных и кластерных систем" в печатном или электронном виде. Также, Вы можете прочесть аннотацию, цитаты и содержание, ознакомиться и оставить отзывы (комментарии) об этой книге.
Место издания: Москва
ISBN: 978-5-93700-261-7 (рус.). – ISBN 978-3-031-28923-1 (англ.)
Страниц: 634
Артикул: 112875
Возрастная маркировка: 16+
Краткая аннотация книги "Параллельное программирование для мультиядерных и кластерных систем"
В книге представлены методы, необходимые для разработки эффективных программ для мультиядерных процессоров, для параллельных кластерных систем или суперкомпьютеров как с распределенным, так и с совместно используемым адресным пространством. Книга охватывает все области параллельных вычислений. Для каждого алгоритма обсуждаются разные варианты распараллеливания с использованием различных методов и стратегий. В конце глав приведены упражнения для закрепления изученной темы.Издание предназначено разработчикам параллельных архитектур, а также может быть полезно преподавателям и студентам.
Содержание книги "Параллельное программирование для мультиядерных и кластерных систем "
От издательства
Предисловие
Глава 1. Введение
1.1. Традиционное использование параллелизма
1.2. Параллелизм в современном аппаратном обеспечении
1.3. Основные концепции параллельного программирования
1.4. Краткий обзор содержания книги
Глава 2. Архитектура параллельного компьютера
2.1. Архитектура процессора и тенденции развития технологии
2.2. Потребление электроэнергии в процессорах
2.3. Время доступа к памяти
2.3.1. Время доступа к DRAM
2.3.2. Многопоточность для сокрытия времени доступа к памяти
2.3.3. Кеши для уменьшения среднего времени доступа к памяти
2.4. Классификация параллельных архитектур Флинна
2.5. Организация памяти параллельных компьютеров
2.5.1. Компьютеры с распределенной памятью
2.5.2. Компьютеры с совместно используемой памятью
2.6. Параллелизм на уровне потоков
2.6.1. Одновременная многопоточность
2.6.2. Мультиядерные процессоры
2.6.3. Архитектура мультиядерных процессоров
2.7. Соединительные сети
2.7.1. Свойства соединительных сетей
2.7.2. Сети прямого соединения
2.7.3. Варианты встраивания
2.7.4. Динамические соединительные сети
2.8. Маршрутизация и коммутация
2.8.1. Алгоритмы маршрутизации
2.8.2. Маршрутизация в сети омега
2.8.3. Коммутация
2.8.4. Механизмы управления потоком
2.9. Иерархия кешей и памяти
2.9.1. Характеристики кешей
2.9.2. Стратегии записи
2.9.3. Согласованность кеша
2.9.4. Согласованность памяти
2.10. Примеры аппаратного параллелизма
2.10.1. Архитектуры Intel Cascade Lake и Ice Lake
2.10.2. Список Top500
2.11. Упражнения к главе 2
Глава 3. Модели параллельного программирования
3.1. Модели для параллельных систем
3.2. Параллельный режим в программах
3.3. Уровни распараллеливания
3.3.1. Распараллеливание на уровне машинных инструкций
3.3.2. Распараллеливание по данным
3.3.3. Распараллеливание цикла
3.3.4. Функциональное распараллеливание
3.3.5. Явное и неявное представление распараллеливания
3.3.6. Паттерны параллельного программирования
3.4. SIMD-вычисления
3.4.1. Выполнение векторных операций
3.4.2. SIMD-инструкции
3.5. Распределения данных для массивов
3.5.1. Распределение данных для одномерных массивов
3.5.2. Распределение данных для двумерных массивов
3.5.3. Параметризованное распределение данных
3.6. Обмен информацией
3.6.1. Совместно используемые переменные
3.6.2. Операции обмена данными
3.7. Вычисление произведения матрицы на вектор в параллельном режиме
3.7.1. Параллельное вычисление скалярных произведений
3.7.2. Параллельное вычисление линейных комбинаций
3.8. Процессы и потоки
3.8.1. Процессы
3.8.2. Потоки
3.8.3. Механизмы синхронизации
3.8.4. Разработка эффективных и корректных потоковых программ
3.9. Перспективные методики параллельного программирования
3.10. Упражнения к главе 3
Глава 4. Анализ производительности параллельных программ
4.1. Оценка производительности компьютерных систем
4.1.1. Оценка производительности ЦП
4.1.2. MIPS и MFLOPS
4.1.3. Производительность процессоров в иерархии памяти
4.1.4. Программы эталонных тестов
4.2. Метрики производительности для параллельных программ
4.2.1. Время выполнения в параллельном режиме и затраты
4.2.2. Коэффициент ускорения вычислений и эффективность
4.2.3. Слабая и сильная масштабируемость
4.3. Измерение энергозатрат и метрики энергии
4.3.1. Методики измерения производительности и потребления энергии
4.3.2. Моделирование потребления мощности и энергии для DVFS
4.3.3. Метрики энергопотребления для параллельных программ
4.4. Асимптотическое время для глобальных операций обмена данными
4.4.1. Реализация глобальных операций обмена данными
4.4.2. Операции обмена данными в гиперкубе
4.4.3. Операции обмена данными в полном двоичном дереве
4.5. Анализ времени параллельного выполнения
4.5.1. Скалярное произведение в параллельном режиме
4.6. Параллельные вычислительные модели
4.6.1. Модель PRAM
4.6.2. Модель BSP
4.6.3. Модель LogP
4.7. Планирование и разделение на блоки цикла
4.7.1. Планирование цикла
4.7.2. Разбиение цикла на блоки
4.8. Упражнения
Глава 5. Программирование передачи сообщений
5.1. Введение в MPI
5.1.1. MPI-операции двухточечного обмена данными
5.1.2. Взаимоблокировки при двухточечном обмене данными
5.1.3. Неблокирующие операции двухточечного обмена данными
5.1.4. Режимы обмена данными
5.2. Групповые операции обмена данными
5.2.1. Групповые операции обмена данными в MPI
5.2.2. Взаимоблокировки при выполнении групповых операций обмена данными
5.2.3. Неблокирующие групповые операции обмена данными
5.3. Группы процессов и коммуникаторы
5.3.1. Группы процессов в MPI
5.3.2. Топологии процессов
5.3.3. Хронометраж и удаление процессов
5.4. Дополнительные темы
5.4.1. Динамическая генерация и управление процессами
5.4.2. Односторонний обмен данными
5.5. Упражнения к главе 5
Глава 6. Многопоточное программирование
6.1. Программирование с использованием Pthreads
6.1.1. Создание и объединение потоков
6.1.2. Согласование потоков с помощью Pthreads
6.1.3. Условные переменные
6.1.4. Расширенный механизм блокировки
6.1.5. Однократная инициализация
6.2. Паттерны параллельного программирования с использованием Pthreads
6.2.1. Реализация пула задач
6.2.2. Распараллеливание методом конвейеризации
6.2.3. Реализация модели клиент–сервер
6.3. Дополнительные функциональные возможности Pthreads
6.3.1. Атрибуты потока и отмена его выполнения
6.3.2. Планирование потоков с помощью Pthreads
6.3.3. Инверсия приоритета
6.3.4. Специализированные данные потоков
6.4. Java Threads
6.4.1. Создание потоков в Java
6.4.2. Синхронизация потоков Java
6.4.3. Ожидание и оповещение
6.4.4. Расширенные паттерны синхронизации
6.4.5. Планирование потоков в Java
6.4.6. Пакет java.util.concurrent
6.5. OpenMP
6.5.1. Директивы компилятора
6.5.2. Подпрограммы среды выполнения
6.5.3. Согласование и синхронизация потоков
6.5.4. Модель задач OpenMP
6.6. Упражнения к главе 6
Глава 7. Программирование GPU общего назначения
7.1. Архитектура графических процессоров
7.2. Введение в программирование с использованием CUDA
7.3. Синхронизация и совместно используемая память
7.4. Планирование потоков в CUDA
7.5. Эффективный доступ к памяти и методика тайлинга
7.6. Введение в OpenCL
7.7. Упражнения к главе 7
Глава 8. Алгоритмы решения систем линейных уравнений
8.1. Метод исключения Гаусса
8.1.1. Метод исключения Гаусса и LU-разложение матрицы
8.1.2. Параллельная реализация с циклическим по строкам распределением данных
8.1.3. Параллельная реализация с распределением в шахматном порядке
8.1.4. Анализ времени выполнения в параллельном режиме
8.2. Прямые методы решения систем линейных уравнений с ленточной структурой
8.2.1. Дискретизация уравнения Пуассона
8.2.2. Трехдиагональные системы
8.2.3. Обобщение для ленточных матриц
8.2.4. Решение дискретизированного уравнения Пуассона
8.3. Итеративные методы решения систем линейных уравнений
8.3.1. Стандартные итеративные методы
8.3.2. Параллельная реализация итерационного метода Якоби
8.3.3. Параллельная реализация итерационного метода Гаусса–Зейделя
8.3.4. Итерационный метод Гаусса–Зейделя для разреженных систем
8.3.5. Красно-черное упорядочение
8.4. Метод сопряженных градиентов
8.4.1. Последовательный метод сопряженных градиентов
8.4.2. Параллельная реализация метода сопряженных градиентов
8.5. Разложение Холецкого для разреженных матриц
8.5.1. Последовательный алгоритм
8.5.2. Схема хранения для разреженных матриц
8.5.3. Реализация для совместно используемых переменных
8.6. Упражнения к главе 8
Список литературы
Предметный указатель
Все отзывы о книге Параллельное программирование для мультиядерных и кластерных систем
С книгой "Параллельное программирование для мультиядерных и кластерных систем" читают
Внимание!
При обнаружении неточностей или ошибок в описании книги "Параллельное программирование для мультиядерных и кластерных систем (автор Томас Раубер, Гудула Рюнгер)", просим Вас отправить сообщение на почту help@directmedia.ru. Благодарим!
и мы свяжемся с вами в течение 15 минут
за оставленную заявку