Цель
Цель курса состоит в изучении
математических моделей, методов и технологий параллельного программирования для
многопроцессорных вычислительных систем в объеме, достаточном для успешного
начала работ в области параллельного программирования.
Краткий обзор курса
Излагаемый набор знаний и умений
составляет теоретическую основу для методов разработки сложных программ и включают
такие темы, как:
-
Цели и задачи параллельной обработки данных,
-
Принципы построения параллельных вычислительных
систем,
-
Моделирование и анализ параллельных вычислений,
-
Принципы разработки параллельных алгоритмов и
программ,
-
Системы разработки параллельных программ,
-
Параллельные
численные алгоритмы для решения типовых задач вычислительной математики.
Изучение курса поддерживается расширенным
лабораторным практикумом.
Автор курса
Гергель В.П., профессор, д.т.н., e-mail: gergel@unn.ru
Авторский коллектив
Требования к слушателям
Предполагается знание учебного
материала курсов:
-
CS101 "Введение в методы программирования",
-
CS105 "Дискретная математика",
-
CS220 "Архитектура ЭВМ",
-
CS225"Операционные системы",
-
CS304 "Методы вычислений".
При выполнении
практических и лабораторных заданий требуется владение методами программирования
на алгоритмическом языке С.
Общее описание курса(36 часов)
-
Цели и задачи введения параллельной обработки данных
(1 час)
-
Принципы построения параллельных вычислительных систем
(3 часа)
-
Модели вычислений и методы анализа эффективности (4
часа)
-
Анализ коммуникационной трудоемкости параллельных
алгоритмов (4 часа)
-
Технология разработки параллельных программ для
многопроцессорных систем с распределенной памятью (стандарт передачи сообщений
MPI) (6 часов)
-
Технология разработки параллельных программ для
многопроцессорных систем с общей памятью (стандарт OpenMP) (4 часа)
- Принципы разработки параллельных методов (2
часа)
-
Параллельные численные алгоритмы для решения типовых
задач вычислительной математики (8 часа)
-
Модели
функционирования параллельных программ (4 часа)
См.Расширенное описание курса
Общее описание лабораторного практикума
-
Разработка параллельных программ для вычислительных
систем с распределенной памятью с использованием интерфейса передачи сообщений
MPI (4 часа)
- Разработка параллельных программ для
вычислительных систем с общей памятью с использованием технологии ОрепМР
(4 часа)
-
Практикум по оценке эффективности параллельных методов
с использованием системы ПараЛаб (2 часа)
-
Практикум по разработке параллельных алгоритмов и
программ для решения задач вычислительной математики (14 часов)
-
Практикум по методам параллельных вычислений для
решения дифференциальных уравнений в частных производных (4 часа)
-
Практикум по использованию библиотек параллельных
методов для решения сложных научно-технических задач (4 часа)
-
Практикум
по методам параллельных вычислений для решения задач многомерной
многоэкстремальной оптимизации (4
часа)
См.Расширенное
описание лабораторного практикума
Проведение
лабораторного практикума с использованием системы ПараЛаб
Контрольные
вопросы
Задания и
упражнения
Задания для самостоятельной работы
При прохождении лабораторного
практикума помимо выполнения упражнений под руководством преподавателя каждый
студент самостоятельно осуществляет решение трех заданий разного уровня
сложности:
-
Два из этих упражнений связаны с разработкой
параллельных программ для систем с общей и распределенной памятью и направлены
на практическое освоение технологий OpenMP и MPI соответственно. Задания для
такого вида упражнений берутся из разделов 4 и 5 учебных материалов курса.
-
Третье
упражнение состоит в разработке параллельной программы для одного из
алгоритмов, рассмотренных в разделах 7-12 учебных материалов
курса.
Курсовой проект (зачетная работа)
Обучение в рамках данного курса
завершается подготовкой курсового проекта (зачетной работой). В рамках данной
работы студентами должен быть выполнен полный цикл разработки параллельной
программы достаточно высокого уровня сложности.
См.Правила выполнения курсового проекта
(зачетной работы)
Экзамен
Экзамен по курсу проводится в
устной форме. Вопросы и задачи экзамена формируются на основе учебных материалов
курса. Итоговая оценка выставляется с учетом всех результатов обучения по курсу:
-
Участие в лекционных занятиях – 10%,
-
Работа на практических и лабораторных
занятиях - 10%,
-
Выполнение самостоятельных заданий -
20%,
-
Выполнение зачетного задания - 30%,
-
Экзамен - 30%.
Литература
Учебные материалы к
курсу
Гергель, В.П., Стронгин, Р.Г.
(2003, 2 изд.). Основы
параллельных вычислений для многопроцессорных вычислительных систем. -
Н.Новгород, ННГУ.
Воеводин В.В., Воеводин
Вл.В. (2002).
Параллельные вычисления. – СПб.: БХВ-Петербург.
Немнюгин С., Стесик
О. (2002). Параллельное программирование для многопроцессорных
вычислительных систем – СПб.: БХВ-Петербург.
Таненбаум Э. (2002) . Архитектура компьютера. –
СПб.: Питер.
Quinn, M. J. (2004). Parallel Programming
in C with MPI and OpenMP. – New York, NY: McGraw-Hill.
Grama, A., Gupta, A., Kumar V. (2003, 2nd edn.). Introduction to Parallel
Computing. – Harlow,
England:
Addison-Wesley.
Pacheco, P. (1996). Parallel Programming
with MPI. - Morgan Kaufmann.
Chandra, R., Dagum,
L., Kohr, D., Maydan, D.,
McDonald, J., and Melon, R. (2000). Parallel Programming in OpenMP. Morgan Kaufmann
Publishers.
Culler, D.,
Singh, J.P., Gupta, A. (1998) Parallel Computer
Architecture: A Hardware/Software Approach. - Morgan Kaufmann.
Tanenbaum, A. (2001). Modern Operating
System. 2nd edn. – Prentice Hall (русский перевод Таненбаум
Э. Современные операционные системы. – СПб.: Питер,
2002)
Полный
обзор литературы, которая может оказаться полезной при изучении курса,
содержится в учебных материалах.
Описание курса в соответствии с рекомендациями CC 2001
AL4 |
Распределенные алгоритмы |
3 осн. часа ( из 3) |
AL11 |
Параллельные алгоритмы |
4 осн. часов |
AR7 |
Многопроцессорные архитектуры |
1 осн. часов (из 3) |
AR8 |
Улучшение производительности |
2 осн. часа |
OS3 |
Параллелизм |
4 осн. часа (из 6) |
NC1 |
Введение в распределенные вычисления |
2 осн. часов (из 2) |
CN1 |
Численный анализ |
4 осн. час |
CN4 |
Высокопроизводительные вычисления |
12 осн. часов |
Описание курса в соответствии со стандартом направления 5119 "Информационные технологии":
АЛ4 |
Распределенные алгоритмы |
3 осн. часа ( из 3) |
АР7 |
Параллельные архитектуры |
1 осн. часов (из 3) |
ОС3 |
Параллелизм |
4 осн. часа (из 6) |
КС1 |
Введение в сетевую обработку данных |
2 осн. часов (из 2) |
|
Вычислительная математика |
4 осн. час |
|
Суперкомпьютеры и их применение |
12 осн. часов |