Параллельные и высокопроизводительные вычисления
Здесь можно купить книгу "Параллельные и высокопроизводительные вычисления " в печатном или электронном виде. Также, Вы можете прочесть аннотацию, цитаты и содержание, ознакомиться и оставить отзывы (комментарии) об этой книге.
Место издания: Москва
ISBN: 978-5-97060-936-1
Страниц: 801
Артикул: 99402
Возрастная маркировка: 16+
Краткая аннотация книги "Параллельные и высокопроизводительные вычисления"
Параллельное программирование позволяет распределять задачи обработки данных между несколькими процессорами, существенно повышая производительность. В книге рассказывается, как с минимальными трудозатратами повысить эффективность ваших программ. Вы научитесь оценивать аппаратные архитектуры и работать со стандартными инструментами отрасли, такими как OpenMP и MPI, освоите структуры данных и алгоритмы, подходящие для высокопроизводительных вычислений, узнаете, как экономить энергию на мобильных устройствах, и даже запустите масштабную симуляцию цунами на батарее из GPU-процессоров. Издание предназначено для опытных программистов, владеющих языком высокопроизводительных вычислений, таким как C, C++ или Fortran.
Содержание книги "Параллельные и высокопроизводительные вычисления "
Оглавление
Предисловие
Благодарности
О книге
Об авторах
Об иллюстрации на обложке
Часть I. ВВЕДЕНИЕ В ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ
1. Зачем нужны параллельные вычисления?
1.1 Почему вы должны изучить параллельные вычисления?
1.2 Фундаментальные законы параллельных вычислений
1.3 Как работают параллельные вычисления?
1.4 Классифицирование параллельных подходов
1.5 Параллельные стратегии
1.6 Параллельное ускорение против сравнительного ускорения: две разные меры
1.7 Чему вы научитесь в этой книге?
Резюме
2. Планирование под параллелизацию
2.1 На подступах к новому проекту: подготовка
2.2 Профилирование: определение разрыва между способностями системы и производительностью приложения
2.3 Планирование: основа успеха
2.4 Имплементация: где все это происходит
2.5 Фиксация: качественное завершение работы
2.6 Материалы для дальнейшего изучения
Резюме
3. Пределы производительности и профилирование
3.1 Знание потенциальных пределов производительности вашего приложения
3.2 Определение возможностей своего оборудования: сравнительное тестирование
3.3 Характеризация вашего приложения: профилирование
3.4 Материалы для дальнейшего изучения
Резюме
4. Дизайн данных и модели производительности
4.1 Структуры данных для обеспечения производительности: дизайн с ориентацией на данные
4.2 Три категории неуспешных обращений к кешу: вынужденное, емкостное и конфликтное
4.3 Простые модели производительности: тематическое исследование
4.4 Продвинутые модели производительности
4.5 Сетевые сообщения
4.6 Материалы для дальнейшего изучения
Резюме
5. Параллельные алгоритмы и шаблоны
5.1 Анализ алгоритмов для приложений параллельных вычислений
5.2 Модели производительности против алгоритмической сложности
5.3 Параллельные алгоритмы: что это такое?
5.4 Что такое хеш-функция?
5.5 Пространственное хеширование: высокопараллельный алгоритм
5.6 Шаблон префиксного суммирования (сканирования) и его важность в параллельных вычислениях
5.7 Параллельная глобальная сумма: решение проблемы ассоциативности
5.8 Будущие исследования параллельных алгоритмов
5.9 Материалы для дальнейшего изучения
Резюме
Часть II. CPU: ПАРАЛЛЕЛЬНАЯ РАБОЧАЯ ЛОШАДКА
6. Векторизация: флопы забесплатно
6.1 Векторизация и обзор SIMD (одна команда, несколько элементов данных)
6.2 Аппаратные тренды векторизации
6.3 Методы векторизации
6.4 Стиль программирования для более качественной векторизации
6.5 Компиляторные флаги, относящиеся к векторизации, для различных компиляторов
6.6 Директивы OpenMP SIMD для более качественной переносимости
6.7 Материалы для дальнейшего изучения
Резюме
7. Стандарт OpenMP, который «рулит»
7.1 Введение в OpenMP
7.2 Типичные варианты использования OpenMP : уровень цикла, высокий уровень и MPI плюс OpenMP
7.3 Примеры стандартного OpenMP уровня цикла
7.4 Важность области видимости переменной для правильности в OpenMP
7.5 OpenMP уровня функции: придание всей функции целиком свойства поточной параллельности
7.6 Усовершенствование параллельной масштабируемости с помощью OpenMP высокого уровня
7.7 Гибридное потокообразование и векторизация с OpenMP
7.8 Продвинутые примеры использования OpenMP
7.9 Инструменты потокообразования, необходимые для устойчивых имплементаций
7.10 Пример алгоритма поддержки на основе операционных задач
7.11 Материалы для дальнейшего изучения
Резюме
8. MPI: параллельный становой хребет
8.1 Основы программы MPI
8.2 Команды отправки и приемки для обмена данными «из процесса в процесс»
8.3 Коллективный обмен данными: мощный компонент MPI
8.4 Примеры параллельности данных
8.5 Продвинутая функциональность MPI для упрощения исходного кода и обеспечения оптимизаций
8.6 Гибридная техника MPI плюс OpenMP для максимальной масштабируемости
8.7 Материалы для дальнейшего изучения
Резюме
Часть III. GPU: РОЖДЕНЫ ДЛЯ УСКОРЕНИЯ
9. Архитектуры и концепции GPU
9.1 Система CPU-GPU как ускоренная вычислительная платформа
9.2 GPU и двигатель потокообразования
9.3 Характеристики пространств памяти GPU
9.4 Шина PCI: накладные расходы на передачу данных от CPU к GPU
9.5 Платформы с многочисленными GPU и MPI
9.6 Потенциальные преимущества платформ, ускоренных за счет GPU
9.7 Когда следует использовать GPU-процессоры
9.8 Материалы для дальнейшего изучения
Резюме
10. Модель программирования GPU
10.1 Абстракции программирования GPU: широко распространенная структура
10.2 Структура кода для модели программирования GPU
10.3 Оптимизирование использования ресурсов GPU
10.4 Редукционный шаблон требует синхронизации между рабочими группами
10.5 Асинхронные вычисления посредством очередей (потоков операций)
10.6 Разработка плана параллелизации приложения для GPU-процессоров
10.7 Материалы для дальнейшего изучения
Резюме
11. Программирование GPU на основе директив
11.1 Процесс применения директив и прагм для имплементации на основе GPU
11.2 OpenACC: самый простой способ выполнения на вашем GPU
11.3 OpenMP: чемпион в тяжелом весе вступает в мир ускорителей
11.4 Материалы для дальнейшего изучения
Резюме
12. Языки GPU: обращение к основам
12.1 Функциональности нативного языка программирования GPU
12.2 Языки CUDA и HIP GPU: низкоуровневая опция производительности
12.3 OpenCL для переносимого языка GPU с открытым исходным кодом
12.4 SYCL: экспериментальная имплементация на C++ становится магистральной
12.5 Языки более высокого уровня для обеспечения переносимости производительности
12.6 Материалы для дальнейшего изучения
Резюме
13. Профилирование и инструменты GPU
13.1 Обзор инструментов профилирования
13.2 Как выбрать хороший рабочий поток
13.3 Образец задачи: симуляция мелководья
13.4 Образец профилировочного рабочего потока
13.5 Не утоните в болоте: сосредотачивайтесь на важных метриках
13.6 Контейнеры и виртуальные машины обеспечивают обходные пути
13.7 Облачные опции: гибкие и переносимые возможности
13.8 Материалы для дальнейшего изучения
Резюме
Часть IV. ЭКОСИСТЕМЫ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ ВЫЧИСЛЕНИЙ
14. Аффинность: перемирие с вычислительным ядром
14.1 Почему важна аффинность?
14.2 Нащупывание вашей архитектуры
14.3 Аффинность потоков с OpenMP
14.4 Аффинность процессов с MPI
14.5 Аффинность для MPI плюс OpenMP
14.6 Контроль за аффинностью из командной строки
14.7 Будущее: установка и изменение аффинности во время выполнения
14.8 Материалы для дальнейшего исследования
Резюме
15. Пакетные планировщики: наведение порядка в хаосе
15.1 Хаос неуправляемой системы
15.2 Как не быть помехой при работе в занятом работой кластере
15.3 Отправка вашего первого пакетного скрипта
15.4 Автоматические перезапуски для длительных заданий
15.5 Указание зависимостей в пакетных скриптах
15.6 Материалы для дальнейшего исследования
Резюме
16. Файловые операции для параллельного мира
16.1 Компоненты высокопроизводительной файловой системы
16.2 Стандартные файловые операции : интерфейс между параллельной и последовательной обработкой
16.3 Файловые операции MPI (MPI-IO) для более параллельного мира
16.4 HDF5 как самоописывающий формат для более качественного управления данными
16.5 Другие пакеты программно-информационного обеспечения для параллельных файлов
16.6 Параллельная файловая система: аппаратный интерфейс
16.7 Материалы для дальнейшего исследования
Резюме
17. Инструменты и ресурсы для более качественного исходного кода
17.1 Системы версионного контроля: все начинается здесь
17.2 Таймерные процедуры для отслеживания производительности исходного кода
17.3 Профилировщики: невозможно улучшить то, что не измеряется
17.4 Сравнительные тесты и мини-приложения: окно в производительность системы
17.5 Обнаружение (и исправление) ошибок памяти для устойчивого приложения
17.6 Инструменты проверки потоков для определения гоночных условий
17.7 Устранители дефектов: отладчики для уничтожения дефектов
17.8 Профилирование файловых операций
17.9 Менеджеры пакетов: ваш персональный системный администратор
17.10 Modules: загрузка специализированных цепочек инструментов
17.11 Размышления и упражнения
Резюме
Приложение А. Справочные материалы
Приложение B. Решения упражнений
Приложение C. Глоссарий
Предметный указатель
Все отзывы о книге Параллельные и высокопроизводительные вычисления
С книгой "Параллельные и высокопроизводительные вычисления" читают
Внимание!
При обнаружении неточностей или ошибок в описании книги "Параллельные и высокопроизводительные вычисления (автор Роберт Роби, Джулиана Замора)", просим Вас отправить сообщение на почту help@directmedia.ru. Благодарим!
и мы свяжемся с вами в течение 15 минут
за оставленную заявку