Читать «Организация параллельных потоков. Часть 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. Многопоточность