Валентин Арьков - Организация параллельных потоков. Часть 2

Здесь есть возможность читать онлайн «Валентин Арьков - Организация параллельных потоков. Часть 2» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Год выпуска: 2020, Жанр: Прочая околокомпьтерная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Организация параллельных потоков. Часть 2: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Организация параллельных потоков. Часть 2»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

При решении инженерных, экономических и научных задач используются высокопроизводительные вычисления — High Performance Computing или сокращённо HPC.
Параллельные программы нужны для того, чтобы использовать вычислительные мощности многоядерных процессоров и графических ускорителей. В данной работе мы рассмотрим технологию автоматической организации параллельных потоков для многоядерных вычислительных машин.

Организация параллельных потоков. Часть 2 — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Организация параллельных потоков. Часть 2», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Задание. Создайте файл отчёта и заполните титульный лист.

2. Технология OpenMP

В данной работе мы знакомимся с технологией автоматического распараллеливания программ OpenMP.

Название расшифровывается следующим образом:

Open Multi-Processing.

Распараллеливание программ поддерживается для двух языков программирования

— Fortran;

— С/С++.

2.1. Ключевые понятия

В результате использования данной технологии компилятор автоматически генерирует многопоточные программы. Такие программы дают эффект ускорения при запуске на многоядерных системах с общей памятью.

Многоядерные компьютеры — это так называемые «системы с общей памятью». Другое название — разделяемая память. Английское название: SHARED MEMORY.

Имеется в виду совместное использование оперативной памяти: любой поток имеет доступ к общим глобальным переменным процесса. Более красивая официальная формулировка звучит так: «общий доступ параллельных потоков к виртуальному адресному пространству текущего процесса».

Задание. Изучите в Википедии следующие статьи и выясните, что означают эти термины:

— «Multiprocessing» или «Многопроцессорность»;

— «Multithreading (computer architecture)» или «Многопоточность»;

— «Многоядерный процессор» или «Multi-core processor»;

— «OpenMP».

Задание. Изучите историю разработки технологии и версии спецификаций для обоих языков программирования:

https://www.openmp.org/specifications/.

OpenMP использует наиболее распространённую модель параллелизма:

Single Instruction Multiple Data (SIMD).

В этом случае параллельная часть программы состоит из нескольких одинаковых потоков, которые обрабатывают разные наборы данных.

Задание. Изучите в Википедии статьи «SIMD» и «Таксономия Флинна». Выясните, что такое SIMD.

2.2. Многопоточность

Использование OpenMP проще всего изучать на компьютере с одним многоядерным процессором.

Чтобы сделать из последовательной программы параллельную, разработчику нужно добавить всего несколько строк. Компилятор может игнорировать директивы распараллеливания. В этом случае мы получаем исходную последовательную программу. Если настроить компилятор на использование OpenMP, он автоматически сгенерирует и скомпилирует параллельную программу.

В технологии OpenMP происходит динамическое создание потоков. В процессе работы программа может создавать и уничтожать дополнительные потоки (рис. 2.1). Такая модель условно называется «fork-join». Это означаетразделение программына несколько параллельных веток, выполнение работы параллельном режиме и последующее слияние в одну последовательную ветку.

Рис. 2.1. Модель распараллеливания fork-join

Задание. Изучите в Википедии статью «Fork join».

2.3. Термины OpenMP

В технологии OpenMP используют следующие понятия и термины.

ConstructКонструкция — директива и следующий за ней структурный блок команд (часть программы, ограниченная фигурными скобками).

DirectiveДиректива — строка, начинающаяся как #pragma ompи определяющая поведение программы.

ThreadПоток — часть программы, которая может выполняться последовательно на одном ядре.

Master thread — Главный поток — поток, который существует на протяжении всего времени выполнения процесса и который создаёт группу параллельных потоков ( Team) при входе в параллельную область.

Team — Группа параллельных потоков — один или несколько потоков, которые участвуют в выполнении какой-либо конструкции языка.

Параллельная программа состоит из параллельных и последовательных областей.

Parallel region — Параллельная область — часть программы, которая может выполняться несколькими потоками.

Serial region — Последовательная область — часть программы, которая выполняется только главным потоком.

Переменные делятся на два вида — в зависимости от способа доступа:

Private — уникальная переменная, доступная только внутри потока.

Shared — общая переменная, доступная всем параллельным потокам в рамках одной группы.

2.4. Ответственность разработчика

Лёгкость распараллеливания оборачивается повышением ответственности программиста.

Конкретная реализация OpenMP (среда разработки, компилятор и библиотека) не обязательно проверяет корректность распараллеливания и возникновение следующих нежелательных ситуаций:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Организация параллельных потоков. Часть 2»

Представляем Вашему вниманию похожие книги на «Организация параллельных потоков. Часть 2» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Организация параллельных потоков. Часть 2»

Обсуждение, отзывы о книге «Организация параллельных потоков. Часть 2» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x