Параллельное программирование, Качко Е.Г., 2011

Параллельное программирование, Качко Е.Г., 2011.

   В учебном пособии изложены методы создания программ с параллельными вычислениями. Рассмотрены критерии оценки параллельных программ, эффективность SIMD команд, этапы разработки параллельных программ и среды для их создания OPEN МР и ТВВ. Выполняется сравнение компиляторов Visual Studio C+ + и Intel C++ с точки зрения оптимизации создаваемых программ для параллельного выполнения.
Рекомендуется студентам всех форм обучения специальности «Программная инженерия», всех смежных специальностей, где изучаются курсы Программирование, а также всем тем, кто хочет научиться писать эффективные программы.

Параллельное программирование, Качко Е.Г., 2011


Параллелизм на уровне битов.
При реализации операций обеспечивают максимальное распараллеливание, например, при сложении битов числа одновременно складываются все биты машинного слова и используется специальный механизм учета переносов [15]. Для того чтобы увеличить диапазон чисел, обрабатываемых одной командой, увеличивался размер машинного слова. Так, выполнен переход от 8-ми до 16-ти и далее к 32-разрядпому машинному слову. Современные процессоры имеют 64-разрядное машинное слово, некоторые команды работают со 128-разрядными данными (процессор Lar-rabee работает с данными размером 512 битов). Использование машинного слова с большей разрядностью позволяет быстрее обрабатывать большие числа. Так, для обработки 32-битного числа для 16-битных машин требовалось как минимум 2 команды, а для 32-битных - только одна. К сожалению, это верно не для всех 64-битных процессоров, так как в них реализованы не все операции над 64-битными числами. Тем более ограничено использование команд, которые в результате дают 128-битные числа и числа большей разрядности.

Машинное слово также определяет диапазон адресного пространства, с которым работает вычислительная система, так как оно используется для задания адреса. Так, для 32-битных вычислительных систем максимальный адрес 232- 1, адресное пространство составляет 4 ГБ3. Для 64-битного машинного слова адресное пространство составляет 264 или 16 ГБ. В табл. 1.1 приведены названия единиц измерения памяти.

СОДЕРЖАНИЕ.
Введение.
Список сокращений.
1. ОСОБЕННОСТИ АРХИТЕКТУРЫ СОВРЕМЕННЫХ ПРОЦЕССОРОВ С ТОЧКИ ЗРЕНИЯ ПАРАЛЛЕЛЬНОСТИ ВЫПОЛНЕНИЯ.
1.1 Классификация вычислительных систем по Flynn.
1.2 Дополнительная классификация.
1.3 Типы параллелизма.
1.4 Память и параллелизм.
1.5 Вопросы и задания.
2. ВЫЧИСЛИТЕЛЬНАЯ СЛОЖНОСТЬ АЛГОРИТМА.
2.1 Понятие алгоритма.
2.2 Понятие вычислительной сложности алгоритма.
2.3 Аналитические методы определения вычислительной сложности.
2.4 Экспериментальные методы определения вычислительной сложности.
2.5 Вопросы и задания.
3. ИСПОЛЬЗОВАНИЕ SIMD КОМАНД ДЛЯ ПАРАЛЛЕЛИЗАЦИИ ВЫЧИСЛЕНИЙ.
3.1 ММХ команды.
3.2 3DNow! команды.
3.3 SSE операции.
3.4 Определение характеристик процессоров с точки зрения поддержки SIMD команд.
3.5 Определение числа ядер для процессоров.
3.6 Рекомендации по использованию SIMD команд.
3.7 Вопросы и задания.
4. РАЗРАБОТКА ПАРАЛЛЕЛЬНЫХ ПРОГРАММ.
4.1 Декомпозиция.
4.2 Планирование параллельных программ.
4.3 Реализация программы и анализ ее производительности.
4.4 Примеры разработки программ.
4.5 Вопросы и задания.
5. АЛГОРИТМЫ И ПАРАЛЛЕЛИЗМ.
5.1 Граф параллельного алгоритма.
5.2 Параллельные алгоритмы вычисления суммы.
5.3 Вычисления с многократной точностью.
5.4 Матричные вычисления.
5.5 Алгоритмы сортировки.
5.6 Алгоритм поиска простых чисел (Решето Эратосфена).
5.7 Вопросы и задания.
6. ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИИ OPEN МР ПРИ РАЗРАБОТКЕ ПРОГРАММ.
6.1 Использование технологии OPEN МР при разработке программ. Введение.
6.2 Обзор директив OPEN МР.
6.3 Директива parallel.
6.4 Распараллеливание цикла.
6.5 Вложение параллельных секций.
6.6 Особенности использования секций.
6.7 Переменные и их область действия. Классы памяти.
6.8 Синхронизация потоков.
6.9 OPEN МР и обработка исключений.
6.10 Примеры параллельных программ
6.11 Рекомендации по использованию технологии OPEN МР.
6.12 Вопросы и задания.
7. ТЕХНОЛОГИЯ THREADING BUILDING BLOCKS (ТВВ).
7.1 Общие сведения.
7.2 Инициализация и завершение работы менеджера задач.
7.3 Функции для определения времени.
7.4 Основные конструкции, определяемые библиотекой.
7.5 Параллельное выполнение цикла с известным числом повторений.
7.6 Параллельное выполнение сортировки.
7.7 Особенности использования конвейеров.
7.8 Использование безопасных динамических структур.
7.9 Обзор средств синхронизации для ТВВ.
7.10 Особенности выделения-освобождения памяти.
7.11 Рекомендации по использованию ТВВ.
7.12 Вопросы и задания.
8. ДОПОЛНИТЕЛЬНЫЕ МЕТОДЫ ПАРАЛЛЕЛИЗАЦИИ.
8.1 Расширение языка программирования.
8.2 Потоковые библиотеки.
8.3 Автопараллелизм.
8.4 Автовекторизация.
8.5 Сравнительная характеристика методов.
8.6 Вопросы и задания.
9. ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ И КЕШ-ПАМЯТЬ.
9.1 Архитектура Кеша.
9.2 Алгоритм обращения к памяти.
9.3 Методы минимизации потерь, связанных с использованием Кеша.
9.4 Предварительная загрузка данных в Кеш (предвыборка данных).
9.5 Вопросы и задания.
9.6 Список литературы.
9.7 Предметный указатель.



Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Параллельное программирование, Качко Е.Г., 2011 - fileskachat.com, быстрое и бесплатное скачивание.

Скачать файл № 1 - pdf
Скачать файл № 2 - djvu
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России.Купить эту книгу



Скачать - djvu - Яндекс.Диск.

Скачать - pdf - Яндекс.Диск.
Дата публикации:





Хештеги: :: ::


Следующие учебники и книги:
Предыдущие статьи: