8 (905) 200-03-37 Владивосток
с 09:00 до 19:00

Подлинное программирование с несколькими многофункциональными и графическими процессорами: инструменты, методы и практика компьютерного/сетевого оборудования Jeraximmebara.

Цена: 2 215руб.    (¥104.8)
Артикул: 601844294192

Вес товара: ~0.7 кг. Указан усредненный вес, который может отличаться от фактического. Не включен в цену, оплачивается при получении.

Этот товар на Таобао Описание товара
Продавец:世纪书缘图书专营
Адрес:Пекин
Рейтинг:
Всего отзывов:0
Положительных:0
Добавить в корзину
Другие товары этого продавца
¥2886 086руб.
¥123.242 605руб.
¥122.12 580руб.
¥36.9780руб.

Основная информация

Название книги: Многоядерное программирование и программирование на графических процессорах: инструменты, методы и практики

Цена: 129 юаней

Автор: [ОАЭ] Гераси Мосс&Middot; баллас

Пресса: Machinery Industry Press

Дата публикации: 2017-02-01

ISBN: 9787111557685

Количество слов:

Номер страницы:

Издание:

Переплет: в мягкой обложке, идеальный переплет.

Открыто: 16

Товарный вес:

Краткое содержание


В этой книге подробно обсуждаются текущие ключевые технологии параллельных вычислений с четырех аспектов: реализация, отладка, оптимизация и анализ параллельного программного обеспечения.Основное содержание включает в себя: многоядерное и параллельное программирование, потоки и OpenMP в программировании с общей памятью, программирование с распределенной памятью, программирование на графическом процессоре, библиотеку шаблонов Thrust, балансировку нагрузки и т. д. Эта книга, сочетающая в себе анализ конкретного кода и случаев, показывает, как использовать библиотеки или инструкции для создания многоядерных приложений, как использовать MPI для разработки распределенных приложений, как использовать CUDA для разработки высокопроизводительных программ на графическом процессоре, как добиться балансировки нагрузки, а также как анализировать и отлаживать программы для целевой многоядерной платформы.Эту книгу можно использовать в качестве справочника для специалистов, занимающихся исследованиями в области высокопроизводительных вычислительных технологий, а также в качестве учебного пособия для смежных специальностей в колледжах и университетах.

об авторе


Герассимос Барлас — профессор компьютерных наук и инженерии Американского университета Шарджи. Его исследовательские интересы включают параллельные алгоритмы, среды разработки, анализа и моделирования для балансировки нагрузки и распределенного видео по требованию. Профессор Барлас преподает курсы параллельного программирования уже 12 лет.Еще в 1990-е годы он начал изучать параллельные вычисления и активно участвовал в исследованиях в новой области теории делимой нагрузки параллельных и распределенных систем.

Оглавление


Catuels? Содержание
Переводчик
Предисловие
Глава 1 Обзор 1
1.1 Многоядерные компьютеры эпохи 1
1.2 Классификация параллельных компьютеров 3
1.3 Обзор современных компьютеров 4
1.3.1 Процессор Cell BE 5
1.3.2 NVIDIA Кеплер 6
1.3.3 AMD APU 9
1.3.4 От многоядерности к многоядерности: Tilera TILE-Gx8072 и Intel Xeon Phi
1.4 Показатели эффективности 12
1.5 Прогнозирование и измерение производительности параллельных программ 16
1.5.1 Закон Амдала 18
1.5.2 Закон Густавсона-Барсиса 20
Глава 2 Многоядерное и параллельное программирование 23
2.1 Введение 23
2.2 Методика ПКАМ 24
2.3 Режим разложения 26
2.3.1 Параллелизм задач 27
2.3.2 Декомпозиция принципа «разделяй и властвуй» 28
2.3.3 Геометрическая декомпозиция 30
2.3.4 Рекурсивная декомпозиция данных 32
2.3.5 Декомпозиция конвейера 35
2.3.6 Декомпозиция сотрудничества на основе событий 39
2.4 Образец структуры программы 39
2.4.1 Одна программа и несколько данных 40
2.4.2 Несколько программ и несколько данных 40
2.4.3 Главный/подчиненный 41
2.4.4 Карта-сокращение 41
2.4.5 разветвление/объединение 42
2.4.6 Параллелизм контуров 44
2.5 Сопоставление шаблона декомпозиции и шаблона структуры программы 44
Глава 3. Программирование с общей памятью: потоки 46
3.1 Введение 46
3.2 Тема 48
3.2.1 Определение резьбы 48
3.2.2 Роль потоков 49
3.2.3 Генерация и инициализация потоков 49
3.2.4 Совместное использование данных между потоками 55
3.3 Особенности проектирования 57
3.4 Семафор 58
3.5 Семафоры в классических задачах 62
3.5.1 Производитель–потребитель 63
3.5.2 Обработка завершения 66
3.5.3 Проблема парикмахера: введение справедливости 75
3.5.4 Читатели–Вопрос писателя 80
3.6 Монитор 84
3.6.1 Метод проектирования 1: ключевая область внутри монитора 87
3.6.2 Способ проектирования 2: монитор контролирует вход в ключевую зону 87
3.7 Монитор 91 в классических задачах
3.7.1 Переосмысление производителей–Проблемы потребителей 91
3.7.2 Новый взгляд на читателя–Вопрос писателя 95
3.8 Динамическое управление потоками и статическое управление потоками 2
3.8.1 Пул потоков Qt 2
3.8.2 Создание и управление пулом потоков 3
3.9 Отладка многопоточных приложений 111
3. Высокоуровневая структура: многопоточное программирование без явного использования потоков 115
3..1 Параллельная карта 116
3..2 Уменьшение карты 118
3..3 Параллельная фильтрация 120
3..4 фильтр-уменьшение 121
3..5 Практический пример: многопоточное хранилище 122
3..6 Практический пример: многопоточное сопоставление изображений 131
Глава 4. Программирование общей памяти: OpenMP 140
4.1 Введение 140
4.2 Программы OpenMP 141
4.3 Область действия переменной 144
4.3.1 Определенный интегральный OpenMP версии V.0: раздел руководства 146
4.3.2 Определенно-интегральная версия OpenMP V.1: деление вручную без условий гонки 147
4.3.3 Определенный интеграл OpenMP V.2: неявное секционирование на основе блокировок 148
4.3.4 Определенный интеграл OpenMP V.3: неявное секционирование на основе сокращения 150
4.3.5 Краткое описание области действия переменной 151
4.4 Параллелизм на уровне цикла 152
4.4.1 Зависимость данных 154
4.4.2 Вложенные циклы 162
4.4.3 Планирование 162
4.5 Параллелизм задач 166
4.5.1 директива разделов 166
4.5.2 Инструкция по заданию 171
4.6 Структура синхронизации 177
4.7 Проблемы корректности и оптимизации 183
4.7.1 Безопасность резьбы 183
4.7.2 Ложное разделение 187
4.8 Практический пример: алгоритм сортировки в OpenMP 192
4.8.1 Реализация OpenMP алгоритма сортировки слиянием снизу вверх 192
4.8.2 Реализация OpenMP алгоритма сортировки слиянием сверху вниз 195
4.8.3 Оценка производительности 200
Глава 5 Программирование распределенной памяти 203
5.1 Процесс коммуникации 203
5.2 МПИ 204
5.3 Основные концепции 205
5.4 Ваша личная программа MPI 206
5.5 Архитектура программы 208
5.5.1 СПМД 208
5.5.2 МПМД 209
5.6 Двухточечная связь 2
5.7 Дополнительный режим связи «точка-точка» 214
5.8 Блокировка связи 216
5.9 Краткое описание двухточечной связи 220
5. Отчеты об ошибках и их обработка 220
5.11 Введение в коллективное общение 222
5.11.1 Распространение 226
5.11.2 Сбор 231
5.11.3 Сокращение 233
5.11.4 Коллекция «многие ко многим» 237
5.11.5 Распределение «многие ко многим» 240
5.11.6 Сокращение «многие ко многим» 245
5.11.7 Глобальная синхронизация 245
5.12 Объекты связи 245
5.12.1 Производные типы данных 246
5.12.2 Победа/Решение 253
5.13 Управление узлами: коммуникаторы и группы 254
5.13.1 Создать группу 255
5.13.2 Настройка домофона 257
5.14 Одностороннее общение 259
5.14.1 Функция связи RMA 261
5.14.2 Функция синхронизации RMA 262
5.15 Меры предосторожности при вводе-выводе 270
5.16 Многопроцессное и многопоточное гибридное программирование MPI 276
5.17 Измерения времени и производительности 279
5.18 Отладка и анализ программ MPI 279
5.19 Библиотека Boost.MPI 283
5.19.1 Блокировка и блокировка связи 285
5.19.2? Сериализация данных 289
5.19.3? Коллективное общение 292
5.20 Практический пример: модель конечно-диффузионной агрегации 295
5.21 Практический пример: взлом шифрования методом грубой силы 300
5.21.1 Версия 1:“Основной тип”MPI 300
5.21.2 Версия 2: Комбинация MPI и OpenMP 305
5.22 Практический пример: реализация MPI параллельной модели «ведущий/подчиненный» 308
5.22.1 Простая настройка ведущего/ведомого 309
5.22.2 Многопоточная настройка ведущего/подчиненного 316
Глава 6 Программирование графического процессора 333
6.1 Введение в программирование графического процессора 333
6.2 Модель программирования CUDA: потоки, блоки потоков, сетки потоков 335
6.3 Модель исполнения CUDA: потоковые мультипроцессоры и деформации 340
6.4 Процесс компиляции программы CUDA 344
6.5. Создание проекта CUDA 347
6.6 Иерархия памяти 349
6.6.1 Локальная память/регистр 355
6.6.2 Общая память 356
6.6.3 Постоянная память 363
6.6.4 Память текстур и поверхностей 368
6.7 Технология оптимизации 369
6.7.1 Проектирование организации потоков 369
6.7.2 Структура ядра 378
6.7.3 Доступ к общей памяти 382
6.7.4 Доступ к глобальной памяти 388
6.7.5 Память с блокировкой страниц и нулевым копированием 392
6.7.6 Единая память 394

Выбор редактора


Похожего контента пока нет