Лабораторный практикум
"Модели параллельных вычислений. OpenMP и
DVM‑технологии разработки параллельных программ"
Общее описание лабораторного практикума
Цели и задачи практикума:
Приобретение навыков разработки и отладки параллельных программ типовых вычислительных алгоритмов в модели OpenMP, DVM и гибридной модели OpenMP/DVM.
Необходимое оборудование и ПО:
Вычислительный кластер regatta.cmc.msu.ru, система DVM.
Необходимый уровень подготовки:
Для успешного выполнения практикума предполагается наличие следующих знаний:
· Знание языков программирования Си и Фортран,
· Предварительное ознакомление с методикой разработки и отладки программ в системе DVM [1,2].
Методические рекомендации по выполнению:
Весь материал, необходимый для выполнения практикума, содержится в лекционном курсе и методических пособиях [1,2]. Полезная дополнительная информация может быть найдена в материалах [3,4,5].
Каждому участнику семинара предоставляется следующая последовательная программа SOR (последовательная верхняя релаксация):
Распараллеливание осуществляется с помощью анализа последовательной программы, аналогично анализу распараллеливающего компилятора. Поэтому не предполагается знания указанного алгоритма. Т.к. фрагмент параллельной программы этого алгоритма дан в описании языка Fortran-DVM, то предполагается быстрое написание параллельных программ.
Практическое задание 1
. Распараллеливание итерационных алгоритмов в модели OpenMP
Цель:
· Получить навыки распараллеливания в модели OpenMP существующей программы на языке Фортран.
· Оценить производительность параллельной программы на разном количестве процессоров (при использовании разного количества нитей).
Планируемый результат:
· Параллельная программа (в качестве параллельного алгоритма предлагается использовать один из двух рассмотренных на лекции алгоритмов или придумать свой).
· Результаты выполнения экспериментов по оценке производительности (таблицы и графики времени выполнения, ускорения и эффективности – на 1, 2, 4, 8 и 16 процессорах).
· Выводы по полученным результатам (объяснение убывания или возрастания производительности параллельной программы при увеличении числа нитей).
Практическое задание2
. Распараллеливание итерационных алгоритмов в модели DVM
Цель:
· Получить навыки распараллеливания в модели DVM существующей программы на языке Фортран без изменения последовательной программы.
· Оценить производительность параллельной программы при разном количестве процессоров.
· Определить оптимальную решетку виртуальных процессоров для 2, 4, 8 и 16 процессоров (получить максимальную производительность вариацией виртуальной решетки процессоров).
Главное внимание во втором задании практикума уделяется освоению функциональной отладки и отладки производительности.
Функциональная отладка
(отладка правильности параллельной программы) базируется на сравнении результатов последовательного и параллельного выполнения. Эти результаты должны совпадать с точностью 10-5
.
Отладка производительности.
Для оценки производительности параллельной программы необходимо оперировать характеристиками производительности выполнения DVM-программы, которые выдаются в файл статистики анализатором производительности.
При решении реальных задач, время выполнения инициализации и выдачи результатов пренебрежимо мало по сравнению с основным вычислительным циклом. Поэтому достаточно оперировать только характеристиками основного цикла. Для этого основной итерационный цикл необходимо описать интервалом оценки производительности (см.[1,2]).
Планируемый результат:
·
· Результаты выполнения экспериментов по оценке производительности (таблицы и графики времени выполнения, ускорения и эффективности – на 1, 2, 4, 8 и 16 процессорах).
· Файлы статистики максимальной производительности на 1, 2, 4, 8 и 16 процессорах и виртуальная решетка процессоров, на которой достигнута эта производительность.
· Выводы по полученным результатам (объяснение убывания или возрастания производительности параллельной программы при варьировании виртуальной решетки процессоров).
Практическое задание3
. Распараллеливание итерационных алгоритмов в модели OpenMP/DVM
Цель:
· Получить навыки распараллеливания в модели OpenMP/DVM существующей программы на языке Фортран.
· Оценить производительность параллельной программы при разном количестве процессоров.
· Получить максимальную производительность вариацией виртуальной решетки процессоров и количества нитей.
Планируемый результат:
· Параллельная программа.
· Результаты выполнения экспериментов по оценке производительности. Таблица вида:
1 нить |
2 нити |
4 нити |
8 нитей |
16 нитей |
|
1 процесс |
+ |
+ |
+ |
+ |
+ |
2 процесса |
+ |
+ |
+ |
+ |
|
4 процесса |
+ |
+ |
+ |
||
8 процессов |
+ |
+ |
|||
16 процессов |
+ |
“+”- отмечены ячейки таблицы, которые необходимо заполнить (всевозможные комбинации числа процессоров и нитей).
· Выводы по полученным результатам (объяснение убывания или возрастания производительности параллельной программы при варьировании виртуальной решетки процессоров и количества нитей).
Литература
1. Параллельное программирование на языке FORTRAN-DVM. Методическое пособие по практикуму для студентов 2-4 курсов. МГУ им. М.В.Ломоносова. Факультет ВMиК. Москва, 2002 г. ftp://ftp.keldysh.ru/K_student/OpenMp/method_FDVM_2007_ver2.doc
2. Параллельное программирование на языке C-DVM. Методическое пособие по практикуму для студентов 2-4 курсов. МГУ им. М.В.Ломоносова. Факультет ВMиК. Москва, 2002 г.
3. Дж. Ортега. Введение в параллельные и векторные методы решения линейных систем. Москва, «Мир», 1991.
4. Описание языка FORTRAN-DVM. http://www.keldysh.ru/dvm
5. Описание языка C-DVM. http://www.keldysh.ru/dvm