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

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

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

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

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

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

— 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».

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

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

Single Instruction Multiple Data (SIMD).

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

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

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