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

Организация параллельных потоков. Часть 2. Учебное пособие
Название: Организация параллельных потоков. Часть 2. Учебное пособие
Автор:
Жанр: Книги о компьютерах
Серии: Нет данных
ISBN: Нет данных
Год: Не установлен
О чем книга "Организация параллельных потоков. Часть 2. Учебное пособие"

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

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


© Валентин Юльевич Арьков, 2020


ISBN 978-5-4498-5445-2 (т. 2)

ISBN 978-5-4498-5446-9

Создано в интеллектуальной издательской системе Ridero

Введение

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

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

Нам предстоит оценить параметры эффективности распараллеливания программы на конкретной конфигурации вычислительной системы. По результатам измерения быстродействия определяются показатели ускорения и эффективности распараллеливания. Это опыт исследования и практического знакомства с технологией – не по учебнику, а в форме личногго знакомства. Каждое положение и утверждение можно проверить, «покрутить в руках» и убедиться в его правильнсти или ошибочности.

Мы рассмотрим задачу численной оценки значения определённого интеграла – по двум причинам. Во-первых, многие практические задачи сводятся к нахождению суммы или интеграла. Во-вторых, численные методы интегрирования хорошо поддаются распараллеливанию. Каждое отдельное значение подынтегрального выражения можно вычислять независимо от всех остальных значений. Поэтому численное интегрирование – подходящая задача для знакомства с высокопроизводительными вычислениями.

1. Общие сведения

1.1. Информация и литература

Параллельное программирование освещается в большом количестве учебников и пособий [1—9].

При изучении параллельного программирования полезно обращаться к библиотеке учебных материалов Лаборатории параллельных информационных технологий НИВЦ МГУ. Доступ к библиотеке осуществляется по адресу:

http://parallel.ru/info/parallel/

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


В данной работе мы будем опираться на некоторые примеры из учебного пособия А. С. Антонова [8]. Для первого знакомства с технологиями мы разбираем каждый пример достаточно подробно. Попутно мы обсуждаем самые общие вопросы.

Всё это нужно, чтобы студент не просто освоил стандартные, шаблонные действия с конкретным программным продуктом. В любом деле нужны специалисты с кругозором и эрудицией, с пониманием и способностью самостоятельно развиваться. А это требует чего-то большего, чем только узкопрофессиональные знания и конкретные умения.

На сегодняшний день в интернете имеется множество онлайн курсов.

Первый пример – Национальный Открытый Университет ИНТУИТ:

https://www.intuit.ru.

Основной ресурс с отечественными массовыми открытыми онлайн-курсами (МООК) – «Открытое образование»:

https://openedu.ru/.

Международная платформа МООК «Курсера»:

https://www.coursera.org/.

Задание. Найдите на перечисленных сайтах курсы по следующим ключевым словам и перечислите их в отчёте:

– параллельные;

– parallel;

– высокопроизводительные;

– high performance computing;

– суперкомпьютеры;

– supercomputer;

– OрenMP;

– HPC;

– многоядерные;

– multicore.

1.2. Оформление отчёта

Отчёт по работе оформляем точно так же, как и в предыдущих работах [10]. Отчёт делаем в виде рабочей книги Excel. Это многостраничная книга с оглавлением.

Вначале, как и положено, должен быть титульный лист со всеми данными о работе и исполнителе.

Затем идёт оглавление со ссылками на все страницы.

Далее – задание.

Следом – шаги выполнения работы.

Текст программы вставляем как текст, а не как картинку.

На каждом листе – заголовок и пояснения о том, что заложено в данной программе. Что она должна делать и как это реализовано. Здесь же копия экрана и пояснения по поводу результатов работы.

Поскольку листов в отчёте будет много, названия листов (на вкладках) содержат только номера страниц. Подробные названия нужны в верхней части листа и в оглавлении.

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

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». Это означаетразделение программына несколько параллельных веток, выполнение работы параллельном режиме и последующее слияние в одну последовательную ветку.


С этой книгой читают
Изучая операционные системы, важно и понимать теорию, и уметь практически работать на компьютере. Функции любой операционной системы сводятся к понятию управления. Реализация этих функций – это выбор интерфейса пользователя: командная строка, файловый менеджер или оконная система. В курсе ОС мы рассматриваем все три вида интерфейса – практически, но с пониманием теории. Для упражнений будем использовать популярную ОС, название которой буквально п
Гистограмма – это один из самых простых инструментов статистического управления качеством производства. В этой работе будет использоваться электронная таблица для создания исходных данных, а также для построения и анализа гистограммы. Можно также использовать любой другой программный инструмент, позволяющий строить гистограммы.
Перед вами продолжение серии пособий, позволяющих познакомиться с основными технологиями бизнес-аналитики. Многое можно сделать в рамках электронной таблицы, которая превращается в интуитивно понятный интерфейс к продвинутым инструментам анализа данных.В данной работе мы рассмотрим создание реляционной модели и визуализацию иерархии в агрегированных данных с использованием специализированных надстроек.
Системы бизнес-аналитики работают с различными источниками данных с помощью функций ETL (Extract-Transform-Load). Название ETL можно перевести как «извлечение, преобразование и загрузка данных». Имеется в виду загрузка в хранилище данных для дальнейшей обработки в системе бизнес-аналитики.В простейшем случае это загрузка данных в виде одной, объединённой, консолидированной таблицы. В данной работе мы познакомимся с основными этапами ETL на пример
С точки зрения инженера.Любое договорное знание.В Небытии.Настоящего.Является Софизмом.Истина непознаваема.В данной книге излагаются.Софизмы об Иннатизме и Tabula rasa.А также излагаются Софизм об Апперцепции по Канту, Софизм об Антиципации по Канту и Софизм Термодинамика..С точки зрения инженера.Настоящее.Странного Мига в Бытие.Непознаваемо.
С точки зрения инженера.Любое договорное знание.В Небытии.Настоящего.Является Софизмом.Истина, Творение, Сущее и Бытие.Непознаваемы.В данной книге излагаются.Творение Дуализма Небытия и Бытия.Трактат о Творении Дуализма.
…Поистине неисповедимы пути Господни. Мы не можем знать, куда он направит нас завтра, через месяц, через год. Как отзовется наше слово, наше действие – все это в руках и помыслах Всевышнего.Но мы точно знаем, что он нас бережет, он не дает нам испытаний, которых мы не могли бы вынести. Он ведет нас так, как надо.
Добро пожаловать в удивительную вселенную кибербезопасности, где вас ждут ответы на самые актуальные на сегодняшний день вопросы: Что конкретно мне необходимо сделать, чтобы защитить свои данные? Почему только одного антивируса недостаточно? Чем я рискую, подключаясь к бесплатному Wi-Fi? Насколько защищены мои данные в облачных хранилищах? И многое другое. Книга написана в виде небольших уроков с конкретными действиями, которые описаны простым, н
Эта маленькая книга – отнюдь не маленькая. Потому что изнутри она больше, чем снаружи. В ней содержится целых три книги. А в этих трёх книгах содержатся три ответа на три сакраментальных вопроса: зачем мы родились?.. для чего мы живём?.. в чём смысл жизни?..
В настоящий сборник включено авторское переложение драмы Гуго фон Гофмансталя «Йедерман» – мистерия «Один-за-всех», а также статья А. Курмачёва о постановке «Йедермана» на Зальцбургском театральном фестивале, интервью с исполнителем главной роли Корнелиусом Обоньей и в качестве маленького приятного бонуса – перевод стихотворения немецкого писателя и художника Роберта Гернхардта, графика которого использована в оформлении книги.
Властно вмешивается в судьбу богов Лоуленда древнее предсказание. Бред сумасшедшего художника Либастьяна оказывается пророчеством. Желая раскрыть карты в игре Творца, Элия и ее родичи отправляются на поиски доказательств существования Колоды Джокеров. Путешествия, встречи, находки, а между делом чье-то спасение или смерть, разбитые сердца и подаренные надежды, любовь и ненависть… Веселье и энтузиазм богов бьет через край, зачастую по голо
Сиримская школа волшебников окончена, впереди - великие дела. Раэль и Вален пытаются наладить дипломатические отношения, не только между эльфами и вампирами, но и между собой. Однако все идет наперекосяк, к тому же планы путает появление набравшего силу Потомка. И только дружная команда Раэлевцев способна во всем разобраться. Но без помощи сильных мира сего им не справиться, а потому да проснутся Патриархи! Серия "Упыриная наука": Первая книга Уп