ПАРАЛЛЕЛЬНое программирование
Кафедра систем телекоммуникаций, факультет физико-математических и естественных наук
Обязательная дисциплина, привязанная к семестру
Трудоемкость – 4 кредита, 2 часа лекций и 2 часа лабораторных занятий в неделю
Цель курса
Целью курса является изучение принципов и освоение практических навыков параллельного программирования с использование технологии MPI. В процессе изучения курса даются базовые понятия о параллельных компьютерах и супер-ЭВМ, рассматриваются особенности программирования на массивно-параллельных компьютерах.
Содержание курса
Лекции
Тема 1. Введение в предмет
Параллельные компьютеры и суперЭВМ; суперЭВМ и сверхвысокая производительность; увеличение производительности ЭВМ; параллельная обработка данных на ЭВМ; краткая история появления параллелизма в архитектуре ЭВМ; использование параллельных вычислительных систем.
Тема 2. Особенности программирования на массивно-параллельных компьютерах
Общая структура компьютера CRAY Y-MP C90; разделяемые ресурсы процессора; вычислительная секция процессора; секция управления процессора; параллельное выполнение программ; пиковая производительность CRAY Y-MP C90. Пиковая производительность компьютера CRAY C90; понятие о векторизации программ; анализ узких мест в архитектуре компьютера CRAY C90 (один процессор); суммарное влияние отрицательных факторов на производительность компьютера. Массивно-параллельные компьютеры, общие черты; общая структура компьютера CRAY T3D; коммуникационная сеть; особенности синхронизации процессорных элементов; факторы, снижающие производительность параллельных компьютеров.
Тема 3. Технологии параллельного программирования. Message Passing Interface (MPI)
MPI. Терминология и обозначения; общие процедуры MPI; прием/передача сообщений между отдельными процессами; объединение запросов на взаимодействие; совмещенные прием/передача сообщений; коллективные взаимодействия процессов; синхронизация процессов; работа с группами процессов; предопределенные константы; примеры MPI-программ.
Лабораторные занятия
1. Введение в операционную систему UNIX, параллелизм и его использование.
2. Общая структура программы, общие функции MPI; прием/передача сообщений с блокировкой; различные виды операторов Send.
3. Прием/передача сообщений без блокировки; различные виды операторов Wait и Test.
4. Отложенные взаимодействия; предотвращение тупиковых ситуаций, совмещенные прием и передача сообщений; барьерная синхронизация.
5. Коллективные взаимодействия процессов. Операции с группами процессов и коммуникаторами; виртуальные топологии.
6. Производные типы данных; упаковка данных.
Темы контрольных работ
Промежуточный контроль знаний
Контрольная работа № 1.
Теоретические вопросы по темам
Общая структура компьютера CRAY Y-MP C90; параллельное выполнение программ; понятие о векторизации программ; суммарное влияние отрицательных факторов на производительность компьютера.
Практические задания по темам
Введение в операционную систему UNIX, параллелизм и его использование. Общая структура программы, общие функции MPI; прием/передача сообщений с блокировкой; различные виды операторов Send.
Прием/передача сообщений без блокировки; различные виды операторов Wait и Test.
Контрольная работа № 2.
Теоретические вопросы по темам
Массивно-параллельные компьютеры; коммуникационная сеть; особенности синхронизации процессорных элементов; факторы, снижающие производительность параллельных компьютеров.
Практические задания по темам
Отложенные взаимодействия; предотвращение тупиковых ситуаций, совмещенные прием и передача сообщений; барьерная синхронизация. Коллективные взаимодействия процессов. Операции с группами процессов и коммуникаторами; виртуальные топологии.
Производные типы данных; упаковка данных.
Итоговый контроль знаний.
Контрольная работа № 3.
Теоретические вопросы по темам
Общие процедуры MPI; коллективные взаимодействия процессов; синхронизация процессов; работа с группами процессов.
Литература
Обязательная
1. В.В.Воеводин, Вл.В.Воеводин Параллельные вычисления, БХВ-Петербург, 2002, 608 стр.
2. А.С.Антонов Введение в параллельные вычисления (методическое пособие), изд-во Физического факультета МГУ, 2002, 70 стр.
1. С.А.Немнюгин, О.Л.Стесик Параллельное программирование для многопроцессорных вычислительных систем, БХВ-Петербург, 2002, 400 стр.
2. В.Д.Корнеев Параллельное программирование в MPI, изд-во СО РАН, Новосибирск, 2000, 213 стр.
Программу составил:
Кулябов Дмитрий Сергееевич,
Кандидат физико-математических наук, доцент,
доцент кафедры систем телекоммуникаций,
факультет физико-математических и естественных наук.