Практические технологии параллельного программирования

advertisement
О некоторых результатах проведения курса
“Практические технологии параллельного
программирования”
Н.А. Коновалов, В.А. Крюков
Институт прикладной математики
им. М.В. Келдыша РАН
Н.Н.Попова
Факультет ВМиК МГУ
e-mail: krukov@keldysh.ru
konov@keldysh.ru
popova@cs.msu.su
http://intel.cs.msu.su
Цель курса
изучение практических технологий
параллельного программирования,
приобретение студентами навыков
написания, отладки, анализа эффективности
параллельных программ;
создание практической основы для
дальнейшего углубленного изучения теории
и практики параллельного
программирования
Общая характеристика курса




Статус курса – спецкурс
Курс базируется на использовании DVM и MPI.
Предварительные базовые знания – язык С, ОС Unix
Вычислительная база –
кластер рабочих станций факультета ВМиК,
до 20 процессоров, Fast Ethernet
суперкомпьютер МВС-1000м Межведомственного
Суперкомпьютерного Центра
Содержание курса


Введение в параллельное программирование
основные понятия, модели архитектур параллельных
ВС, модели параллельных программ
Основы DVM
состав системы, основные конструкции, методы
распределения данных, отладка и оптимизация
программ, работа с анализатором
производительности
Содержание курса

Основы MPI:
основные понятия, базовые функции, реализация
коллективных взаимодействий, режимы передачи
сообщений, методы работы с упакованными данными,
использование виртуальных топологий, методы отладки
и оптимизации MPI-программ, средства
профилирования параллельных программ, методы
разработки библиотечных функций
Содержание курса

Язык программирования Fortran 77

Методы организации и управления заданиями на
различных целевых ВС:
- реализация LAM MPI и MPICH
- особенности системы управления заданиями в МСЦ
(трансляция, запуск программ, работами с очередями
заданий, получение результатов)
Содержание курса

Специальные вопросы, связанные с
технологией отладки MPI-программ:
Особенности использования стандартных
средств отладки Unix (dbx, gdb) для работы с
параллельными программами.
Использование upshot как средства отладки
эффективности MPI-программ
Использование отладчика TotalView.
Практические задания
Анализ эффективности DVM и MPI реализаций
различных алгоритмов перемножения матриц
Анализ эффективности DVM и MPI реализаций
некоторых методов решения систем линейных
уравнений
Ленточный алгоритм
(Кластер ВМиК МГУ)
Студ. Д. Попов
Ленточный алгоритм
(МВС 1000м)
Студ. Д. Попов
Ленточный алгоритм
матричного умножения
Блочный алгоритм Кеннона
Зависимость времени выполнения от числа процессоров
для матрицы 1008х1008
100,0000
Время
80,0000
60,0000
DVM
40,0000
MPI
20,0000
0,0000
1
4
16
64
81
144
256
Число процессоров
Эффективность
Зависимость эффективности от числа процессоров для
матрицы 1008х1008
5,0000
4,0000
3,0000
DVM
2,0000
MPI
1,0000
0,0000
1
4
16
64
81
144
256
Число процессоров
Студ. Федулова
Блочный алгоритм Кеннона
Зависимость эффективности от размера матрицы
Эффективность
2,5000
2,0000
1,5000
DVM
1,0000
MPI
0,5000
0,0000
104
504
1000
2000
Размер матрицы
Студ. Федулова
5000
Выводы

Поставленная цель – освоение практического
параллельного программирования –
достигнута

Для более глубокого понимания и освоения
методов эффективного параллельного
программирования одного семестра мало.
Благодарности
Разработка спецкурса и его реализация были
выполнены в рамках студенческой лаборатории
Intel-МГУ.
Благодарим руководство Межведомственного
Суперкомпьютерного Центра за предоставление
доступа к вычислительным ресурсам.
Благодарим Л.В.Нестеренко за постоянное внимание
к нашей работе.
При разработке MPI-раздела курса были очень
полезными информационные материалы сайта
parallel.ru (руководитель д.ф.м.-н. Вл.В.Воеводин) и
лекции профессора В.П.Гергеля.
Download