Параллельные программы нужны для того, чтобы использовать вычислительные мощности многоядерных процессоров и графических ускорителей. В данной работе мы рассмотрим технологию автоматической организации параллельных потоков для многоядерных вычислительных машин.
Нам предстоит оценить параметры эффективности распараллеливания программы на конкретной конфигурации вычислительной системы. По результатам измерения быстродействия определяются показатели ускорения и эффективности распараллеливания. Это опыт исследования и практического знакомства с технологией – не по учебнику, а в форме личногго знакомства. Каждое положение и утверждение можно проверить, «покрутить в руках» и убедиться в его правильнсти или ошибочности.
Мы рассмотрим задачу численной оценки значения определённого интеграла – по двум причинам. Во-первых, многие практические задачи сводятся к нахождению суммы или интеграла. Во-вторых, численные методы интегрирования хорошо поддаются распараллеливанию. Каждое отдельное значение подынтегрального выражения можно вычислять независимо от всех остальных значений. Поэтому численное интегрирование – подходящая задача для знакомства с высокопроизводительными вычислениями.
1. Общие сведения
1.1. Информация и литература
Параллельное программирование освещается в большом количестве учебников и пособий [1—9].
При изучении параллельного программирования полезно обращаться к библиотеке учебных материалов Лаборатории параллельных информационных технологий НИВЦ МГУ. Доступ к библиотеке осуществляется по адресу:
http://parallel.ru/info/parallel/
Учебник и учебные пособия, представленные на указанном сайте, предназначены для использования студентами вузов и доступны для бесплатного скачивания.
В данной работе мы будем опираться на некоторые примеры из учебного пособия А. С. Антонова [8]. Для первого знакомства с технологиями мы разбираем каждый пример достаточно подробно. Попутно мы обсуждаем самые общие вопросы.
Всё это нужно, чтобы студент не просто освоил стандартные, шаблонные действия с конкретным программным продуктом. В любом деле нужны специалисты с кругозором и эрудицией, с пониманием и способностью самостоятельно развиваться. А это требует чего-то большего, чем только узкопрофессиональные знания и конкретные умения.
На сегодняшний день в интернете имеется множество онлайн курсов.
Первый пример – Национальный Открытый Университет ИНТУИТ:
Основной ресурс с отечественными массовыми открытыми онлайн-курсами (МООК) – «Открытое образование»:
Международная платформа МООК «Курсера»:
Задание. Найдите на перечисленных сайтах курсы по следующим ключевым словам и перечислите их в отчёте:
– параллельные;
– parallel;
– высокопроизводительные;
– high performance computing;
– суперкомпьютеры;
– supercomputer;
– OрenMP;
– HPC;
– многоядерные;
– multicore.
1.2. Оформление отчёта
Отчёт по работе оформляем точно так же, как и в предыдущих работах [10]. Отчёт делаем в виде рабочей книги Excel. Это многостраничная книга с оглавлением.
Вначале, как и положено, должен быть титульный лист со всеми данными о работе и исполнителе.
Затем идёт оглавление со ссылками на все страницы.
Далее – задание.
Следом – шаги выполнения работы.
Текст программы вставляем как текст, а не как картинку.
На каждом листе – заголовок и пояснения о том, что заложено в данной программе. Что она должна делать и как это реализовано. Здесь же копия экрана и пояснения по поводу результатов работы.
Поскольку листов в отчёте будет много, названия листов (на вкладках) содержат только номера страниц. Подробные названия нужны в верхней части листа и в оглавлении.
Задание. Создайте файл отчёта и заполните титульный лист.
2. Технология OpenMP
В данной работе мы знакомимся с технологией автоматического распараллеливания программ OpenMP.
Название расшифровывается следующим образом:
Open Multi-Processing.
Распараллеливание