Смекни!
smekni.com

1. Введение в предмет

ПАРАЛЛЕЛЬНое программирование

Кафедра систем телекоммуникаций, факультет физико-математических и естественных наук

Обязательная дисциплина, привязанная к семестру

Трудоемкость – 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 стр.

Программу составил:

Кулябов Дмитрий Сергееевич,

Кандидат физико-математических наук, доцент,

доцент кафедры систем телекоммуникаций,

факультет физико-математических и естественных наук.