Инструменты паралельного программирования в системах с общей памятью

В наличии Цена за шт.

910

Количество
Купить

Акции и скидки Поделиться


  • Артикул:00805305
  • Автор: К.В Корняков, В.Д. Кустикова, И.Б. Мееров, А.А. Сиднев, А.В.Сысоев, А.В. Шишков
  • ISBN: 978-5-211-05931-3
  • Обложка: Твердый переплет
  • Издательство: МГУ (все книги издательства)
  • Город: Москва
  • Страниц: 272
  • Формат: 70x100/16 (~170x240 мм)
  • Год: 2010
  • Вес: 833 г
Развернуть ▼

В учебнике описываются методы и инструментальные средства для разработки, отладки и профилировки параллельных программ, ориентированных на работу в системах с общей памятью. Рассматриваются программные пакеты Intel Thread Checker, Intel Thread Profiler, Intel Threading Building Blocks.
Дается вводная информация по пакету Intel Parallel Studio и библиотеке Intel MKL.
Демонстрируется весь цикл работ, включая создание последовательной реализации в качестве базы для сравнения, подготовку параллельной версии, ее отладку, профилировку и оптимизацию.
Изучение проводится на модельных задачах, не требующих наличия специфических знаний из конкретных предметных областей.
Подразумевается знакомство читателя с основами программирования (базовый язык - С/ С++), некоторые задачи требуют сведений из высшей математики (задача Дирихле).
Учебник разработан в лаборатории "Информационные технологии" (ITLab) факультета ВМК ННГУ с использованием материалов, подготовленных в рамках Приоритетного национального проекта "Образование" при поддержке корпорации Intel и Совета по грантам Президента Российской Федерации (грант № НШ-64729.2010.9).
Для преподавателей и научных сотрудников, а также аспирантов и студентов высших учебных заведений.

Содержание

Предисловие (В. А. Садовничий)
Предисловие
ЧАСТЬ I. ОТЛАДКА ПАРАЛЛЕЛЬНОЙ ПРОГРАММЫ
1. Intel Thread Checker. Краткое описание
1.1. Назначение Intel Thread Checker
1.2. Возможности Intel Thread Checker
1.3. Принцип сбора информации
1.4. Подготовка программы для анализа
1.5. Создание проекта в Intel Thread Checker
1.6. Сбор и анализ данных
1.7. Пример использования Intel Thread Checker
1.7.1. Описание примера
1.7.2. Изучение примера
1.7.3. Подготовка программы для анализа
1.7.4. Создание проекта в Intel Thread Checker
1.7.5. Анализ собранной информации
1.7.6. Причина гонки данных и ее устранение
1.8. Литература
2. Лабораторная работа. Отладка параллельной программы с использованием Intel Thread Checker
2.1. Введение
2.2. Методические рекомендации
2.2.1. Цели и задачи работы
2.2.2. Структура работы
2.2.3. Системные требования
2.2.4. Рекомендации по проведению занятий
2.3. Задача о скалярном произведении векторов
2.3.1. Постановка задачи
2.3.2. Последовательная реализация
2.3.3. Параллельная реализация 1
2.3.4. Анализ параллельной реализации 1
2.3.5. Параллельная реализация 2
2.3.6. Анализ параллельной реализации 2
2.4. Задача Дирихле
2.4.1. Постановка задачи
2.4.2. Метод решения
2.4.3. Последовательная реализация
2.4.4. Параллельная реализация 1
2.4.5. Анализ параллельной реализации 1
2.4.6. Параллельная реализация 2
2.4.7. Анализ параллельной реализации 2
2.5. Задача об обедающих философах
2.5.1. Постановка задачи
2.5.2. Параллельная реализация 1
2.5.3. Анализ параллельной реализации 1
2.5.4. Параллельная реализация 2
2.5.5. Анализ параллельной реализации 2
2.6. Задача о роботе
2.6.1. Постановка задачи
2.6.2. Модель
2.6.3. Метод решения
2.6.4. Последовательная реализация
2.6.4.1. Проектирование структур данных
2.6.4.2. Проектирование модульной структуры
2.6.5. Параллельная реализация
2.6.6. Анализ параллельной реализации
2.7. Дополнительные задания
2.8. Литература
ЧАСТЬ И. ОПТИМИЗАЦИЯ ПАРАЛЛЕЛЬНОЙ ПРОГРАММЫ
3. Intel Thread Profiler. Краткое описание
3.1. Введение
3.1.1. Семейство инструментов Intel для поддержки разработки многопоточных приложений
3.1.2. Определение и цели профилирования
3.1.3. Назначение Intel Thread Profiler
3.2. Технические характеристики Intel Thread Profiler
3.2.1. Поддерживаемые методы создания многопоточных приложений
3.2.2. Системные требования
3.3. Основные концепции и понятия профилирования
3.3.1. Понятие критического пути
3.3.2. Состояния потоков
3.3.3. Понятие категорий времени
3.4. Проблемы производительности, определяемые при помощи профилирования
3.4.1. Распределение вычислительной нагрузки
3.4.2. Синхронизация и производительность
3.4.2.1. Выбор примитивов синхронизации
3.4.2.2. Синхронизация между потоками
3.4.3. Непроизводительные издержки при работе с потоками
3.5. Общий порядок работы с инструментом
3.5.1. Инструментация приложения
3.5.2. Профилирование приложения
3.6. Пример использования Intel Thread Profiler
3.6.1. Изучение профилируемого приложения
3.6.2. Подготовка приложения для профилирования
3.6.3. Профилирование приложения
3.6.3.1. Создание проекта Intel Thread Profiler
3.6.3.2. Профилирование
3.6.4. Анализ производительности приложения
3.7. Контрольные вопросы
3.8. Литература
4. Лабораторная работа. Профилирование параллельной программы с использованием Intel Thread Profiler. Балансировка нагрузки
4.1. Цели лабораторной работы
4.2. Инструкция для выполнения лабораторной работы
4.2.1. Подход 1: разделение множества чисел на одинаковые части по числу потоков
4.2.2. Подход 2: разделение множества чисел на четные и нечетные
4.2.3. Подход 3: разделение множества чисел на небольшие группы
4.3. Самостоятельная работа. Выбор оптимальной степени гранулярности
4.4. Контрольные вопросы
4.5. Литература
5. Лабораторная работа. Профилирование параллельной программы с использованием пакета Intel Parallel Studio. Балансировка нагрузки
5.1. Методические указания
5.1.1. Цели и задачи работы
5.1.2. Структура работы
5.1.3. Тестовая инфраструктура
5.2. Инструмент Intel Parallel Studio
5.3. Разделение множества чисел на одинаковые части по количеству потоков
5.3.1. Задание 1. Открытие проекта OlEqualPartition
5.3.2. Задание 2. Реализация параллельного алгоритма. Поиск ошибок работы с памятью и ошибок многопоточности .
5.3.3. Задание 3. Анализ эффективности («горячие» точки)
5.3.4. Задание 4. Оценка степени параллелизма
5.4. Разделение множества чисел с чередованием
5.4.1. Задание 1. Открытие проекта 02JEvenOdd
5.4.2. Задание 2. Реализация параллельного алгоритма
5.4.3. Задание 3. Оценка степени параллелизма
5.5. Разделение множества чисел на группы
5.5.1. Задание 1. Открытие проекта 03_Blocks
5.5.2. Задание 2. Реализация параллельного алгоритма
5.5.3. Задание 3. Оценка степени параллелизма
5.6. Контрольные вопросы
5.7. Дополнительные задания
5.8. Литература
Приложение 1. Программный код основной функции
Приложение 2. Программный код потоковой функции, реализующей разделение чисел на одинаковые части по количеству потоков
Приложение 3. Программный код потоковой функции, реализующей разделение чисел между двумя потоками на четные и нечетные
Приложение 4. Программный код потоковой функции, реализующей разделение множества чисел на небольшие группы
6. Лабораторная работа. Профилирование параллельной программы с использованием Intel Thread Profiler. Синхронизация и накладные расходы на поддержку многопоточности
6.1. Цель лабораторной работы
6.2. Инструкция для выполнения лабораторной работы
6.2.1. Изучение профилируемого приложения
6.2.2. Профилирование приложения
6.2.2.1. Обработка всех запросов в одном потоке
6.2.2.2. Обработка каждого нового запроса в отдельном потоке
6.2.2.3. Организация пула потоков
6.2.3. Изменение архитектуры приложения: организация пула потоков
6.2.4. Выбор примитивов синхронизации
6.2.5. Снижение частоты синхронизации
6.3. Контрольные вопросы
6.4. Задания для самостоятельной работы
6.5. Литература
1АСТЬ III. СОЗДАНИЕ ПАРАЛЛЕЛЬНОЙ ПРОГРАММЫ
7. Библиотека Intel Threading Building Blocks. Краткое описание
7.1. Назначение библиотеки Intel Threading Building Blocks
7.2. Возможности библиотеки Intel Threading Building Blocks
7.3. Описание библиотеки Intel Threading Building Blocks
7.4. Инициализация и завершение библиотеки
7.5. Распараллеливание простых циклов
7.5.1. Циклы с известным числом повторений
7.5.2. Циклы с известным числом повторений с редукцией
7.6. Распараллеливание сложных конструкций
7.6.1. Сортировка
7.6.2. Циклы с условием
7.6.3. Конвейерные вычисления
7.7. Ядро библиотеки
7.7.1. Общая характеристика логических задач
7.7.2. Алгоритм работы
7.7.3. Создание и уничтожение логических задач
7.7.4. Планирование выполнения логических задач
7.7.5. Распараллеливание рекурсии
7.8. Примитивы синхронизации
7.9. Потокобезопасные контейнеры
7.10. Литература
Приложение 1. Заголовочные файлы библиотеки ТВВ
Приложение 2. Сборка и настройка проекта
Приложение 3. Совместное использование с ОрепМР
Приложение 4. Оценка эффективности приложений
Приложение 5. Динамическое выделение памяти
8. Лабораторная работа. Распараллеливание циклов с использованием библиотеки Intel Threading Building Blocks на примере задачи матрично-векторного умножения
8.1. Введение
8.2. Методические рекомендации
8.2.1. Цели и задачи работы
8.2.2. Структура работы
8.2.3. Системные требования
8.2.4. Рекомендации по проведению занятий
8.3. Постановка задачи
8.4. Последовательный алгоритм
8.5. Реализация последовательного алгоритма
Задание 1. Открытие проекта SerialMatrixVector
Задание 2. Ввод размеров объектов
Задание 3. Ввод данных
Задание 4. Завершение процесса вычислений
Задание 5. Реализация умножения матрицы на вектор
Задание 6. Проведение вычислительных экспериментов
Задание 7. Оценка эффективности
8.6. Параллельный алгоритм
8.6.1. Принципы распараллеливания
8.6.2. Определение подзадач
8.6.3. Выделение информационных зависимостей
8.6.4. Масштабирование и распределение подзадач по вычислительным элементам
8.7. Реализация параллельного алгоритма
Задание 1. Открытие проекта ParallelMatrixVectorMult
Задание 2. Настройка проекта для использования ТВВ
Задание 3. Инициализация библиотеки ТВВ
Задание 4. Распараллеливание цикла средствами библиотеки ТВВ
Задание 5. Проведение вычислительных экспериментов
Задание 6. Выбор значения параметра grainsize
Задание 7. Оценка эффективности
8.8. Контрольные вопросы
8.9. Задания для самостоятельной работы
8.10. Литература
Приложение 1. Программный код последовательного умножения матрицы на вектор
Приложение 2. Программный код параллельного матрично-векторного умножения
9. Лабораторная работа. Использование механизма логических задач библиотеки Intel Threading Building Blocks на примере вычисления быстрого преобразования Фурье
9.1. Введение
9.2. Методические рекомендации
9.2.1. Цели и задачи работы
9.2.2. Структура работы
9.2.3. Системные требования
9.2.4. Рекомендации по проведению занятий
9.3. Схема вычисления быстрого преобразования Фурье
9.3.1. Теоретическая справка
9.3.2. Алгоритм Cooley - Tukey
9.4. Разработка последовательного приложения
Задание 1. Открытие проекта SerialNonrecursiveFFT
Задание 2. Ввод и генерация исходных данных
Задание 3. Завершение процесса вычислений
Задание 4. Реализация БПФ
Задание 5. Проверка корректности
Задание 6. Проведение вычислительных экспериментов
Задание 7. Оценка эффективности
9.5. Разработка параллельного приложения
Задание 1. Открытие проекта ParallelNonrecursiveFFT
Задание 2. Настройка проекта для использования ТВВ
Задание 3. Инициализация библиотеки ТВВ
Задание 4. Разработка параллельной версии с использованием алгоритма tbb::parallel_for
Задание 5. Разработка параллельной версии с использованием
логических задач
Задание 6. Проведение вычислительных экспериментов
9.6. Контрольные вопросы
9.7. Задания для самостоятельной работы
9.8. Литература
Приложение 1. Программный код последовательного вычисления БПФ
Приложение 2. Программный код параллельного вычисления БПФ с использованием функции tbb::parallel_for
Приложение 3. Программный код параллельного вычисления БПФ с использованием логических задач
10. Лабораторная работа. Использование библиотеки Intel Math Kernel Library и пакета Intel Parallel Studio для параллельной реализации метода Монте-Карло
10.1. Введение
10.2. Методические указания
10.2.1. Цели и задачи работы
10.2.2. Структура работы
10.2.3. Тестовая инфраструктура
10.2.4. Рекомендации по проведению занятий
10.3. Оценивание опционов европейского типа
10.3.1. Модель финансового рынка
10.3.2. Понятие опциона и справедливой цены
10.3.3. Метод вычисления справедливой цены опциона
10.4. Интегрирование по методу Монте-Карло
10.5. Программная реализация
10.5.1. Последовательная версия. Расчет по аналитической формуле
10.5.2. Последовательная версия. Использование генератора ПСЧ
10.5.3. Последовательная версия. Использование генератора КСЧ
10.5.4. «Наивная» параллельная версия 1
10.5.5. «Наивная» параллельная версия 2
10.5.6. Корректная параллельная версия
10.6. Дополнительные задания
10.7. Литература


Оставьте отзыв о товаре
Рекомендуем

Артикул 00-01025903

Алгоритмы: построение и анализ

Алгоритмы: построение и анализ

4950 руб.

Купить
×

Диски

Журналы и бланки

Журналы для автодорог, дорожного хозяйстваЖурналы для АЗС и АЗГСЖурналы для аптекЖурналы для архивовЖурналы для аттракционовЖурналы для банковЖурналы для бассейновЖурналы для бухгалтерииЖурналы для газовых хозяйств, газораспределительных систем, ГАЗПРОМаЖурналы для гостиниц, общежитий, хостеловЖурналы для грузоподъемных механизмовЖурналы для делопроизводстваЖурналы для драгметалловЖурналы для ЖКХЖурналы для канатных дорог, фуникулеровЖурналы для кладбищЖурналы для конструкторских, научно-техническая документацияЖурналы для лесных хозяйствЖурналы для лифтовЖурналы для медицинских учрежденийЖурналы для МЧСЖурналы для нефтебазЖурналы для нефтепромысла, нефтепроводовЖурналы для образовательных учрежденийЖурналы для парикмахерских, салонов красоты, маникюрных, педикюрных кабинетовЖурналы для проверки и контроля госорганами, контролирующими организациямиЖурналы для промышленностиЖурналы для работ с повышенной опасностьюЖурналы для регулирования алкогольного рынкаЖурналы для сельских хозяйств, ветеринарииЖурналы для складовЖурналы для снегоплавильных пунктовЖурналы для стройки, строительстваЖурналы для тепловых энергоустановок, котельныхЖурналы для транспортаЖурналы для туризмаЖурналы для учреждений культуры, библиотек, музеевЖурналы для церкви, религиозных организацийЖурналы для шахт, рудников, метрополитенов, подземных сооруженийЖурналы для электроустановокЖурналы и бланки для армии, вооруженных силЖурналы и бланки для нотариусов, юристов, адвокатовЖурналы и бланки для организаций пищевого производства, общепита и пищевых блоковЖурналы и бланки для организаций, занимающихся охраной объектов и частных лицЖурналы и бланки для ФТС РФ (таможни)Журналы и бланки по экологииЖурналы и бланки, используемые в торговле, бытовом обслуживанииЖурналы и бланки, относящиеся к нескольким отраслямЖурналы по геодезии, геологииЖурналы по метрологииЖурналы по охране труда и технике безопасностиЖурналы по пожарной безопасностиЖурналы по психологииЖурналы по санитарии, проверкам СЭСЖурналы по связиЖурналы по эксплуатации зданий и сооруженийЖурналы по энергетикеЖурналы, бланки, формы для кадровых работЖурналы, бланки, формы документов для органов прокуратуры и суда, минюста, пенитенциарной системыЖурналы, бланки, формы документов МВД РФ, РосгвардииКомплекты документов и журналовОбложки для журналов и удостоверенийСамокопирующиеся бланки

Знаки безопасности, таблички, стенды

Вспомогательные знаки, таблички-наклейкиЗапрещающие знакиЗнаки для инвалидовЗнаки для уборки и сбора мусораЗнаки на автомобильЗнаки пожарной безопасностиЗнаки электробезопасностиИнформационные знаки для строительных площадокМедицинские и санитарные знакиНаклейкиПредписывающие знакиПредупреждающие знакиСтендыУказательные знакиЭвакуационные знакиЮмористические знаки

Календари

Книги

Букинистическая литератураГОСТы, ОСТыДетская литератураДомашний кругДругоеИскусство. Культура. ФилологияКниги в электронном видеКниги издательства "Комсомольская правда"Компьютеры и интернетКосмосНаука. Техника. МедицинаНормативные правовые актыОбщественные и гуманитарные наукиОхрана труда, обеспечение безопасностиПодарочные книгиПутешествия. Отдых. Хобби. СпортРелигия. Оккультизм. ЭзотерикаРостехнадзорСанПины, СП, МУ, МР, ГНСборники рецептур блюд для предприятий общественного питанияСНиП, СП, СО,СТО, РД, НП, ПБ, МДК, МДС, ВСНУчебный годХудожественная литератураЭкономическая литератураЭнциклопедии, справочники, словари

Курвиметры

Ленты с тиснением

Линейки

Авиационные и военные линейкиДетские линейкиМедицинские линейкиПортновские линейкиТехнические линейкиТрафареты с чертежными шрифтамиЧертежные линейки

Маркировочная продукция

Маркировка трубопровода "Вода"Маркировка трубопровода "Воздух"Маркировка трубопровода "Газ"Маркировка трубопровода "Жидкость"Маркировка трубопровода "Кислота"Маркировка трубопровода "Пар"Маркировка трубопровода "Прочие вещества"Маркировка трубопровода "Щелочь"

Материалы для типографии (мини-типографии)

Бумага для оргтехникиКлейПереплетные материалыПленка для печати и ламинацииФольга для тиснения

Металлические изделия (металлическая мебель, конструкции, навесы)

Металлическая мебельМеталлические изделия для дачи и дома

Носки и портянки

Одноразовая одежда

Охрана труда

Печати и штампы

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

Плакаты

Погоны министерств и ведомств

Подарки нашим покупателям

Полотенца

Портреты знаменитых людей

Сувениры

Бизнес сувениры, корпоративные подаркиБрелкиГимн России. Эксклюзивное графическое оформление в багетном обрамленииГудки и Рожки охотничьиЗажигалкиКружки для термопереносаКружки подарочныеПодарочные наборы игрПредметы интерьераСувениры, подарки для мужчин

Тир

Рогатки спортивные

Ткани

Товары "Юнармия"

Береты

Товары для дома и офиса

Грамоты и благодарностиИндикаторы стерилизацииКанцелярские товарыКаски, защитные очки, маскиКухонные принадлежностиОгнетушителиПланы эвакуацииСамоспасателиСредства дезинфекцииТовары для ремонтаФитолампы и прожекторыХозяйственные товарыЭлектроудлинители, тройники, катушкиЭлектроустановочные изделия

Товары для здоровья, БАДы

Аюрведические товарыСредства гигиены, косметика из минералов Мертвого моря

Товары для развития, игрушки

Бумажные модели

Товары для спорта, туризма и охоты

Походные сумки, рюкзаки и мешочки для храненияСигнальное снаряжениеТовары для фитнеса

Удостоверения, Свидетельства

Зачетные книжки, студенческие билетыУдостоверения для спортивных секцийУдостоверения рабочих различных специальностей

Упаковка, упаковочные материалы

Коробки картонные

Членские книжки

ГК, ГСК, членские книжки, пропуска и пр.Садоводческие книжки, членские книжки СНТ