Главная Учебники - Разные Лекции (разные) - часть 20
Лабораторный практикум "Модели параллельных вычислений. 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
|