Министерство образования и науки Российской Федерации
ГОУВПО «Мордовский государственный университет им. ёва»
Математический факультет
Кафедра прикладной математики
«УТВЕРЖДАЮ» _____________________ _____________________ «______»__________201_ г. |
РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ (МОДУЛЯ)
Введение в параллельные вычисления
Направление подготовки
Прикладная математика и информатика
Профиль подготовки
Квалификация (степень) выпускника
Бакалавр
Форма обучения
очная
г. Саранск
2011 г.
1. Цели и задачи учебной дисциплины:
Целями освоения учебной дисциплины (модуля) «Технологии параллельных вычислений» являются:
- ознакомление с основными направлениями развития технологий параллельных вычислений; освоение современных методов построения параллельных вычислительных алгоритмов; выработка навыков использования средств создания и отладки параллельных программ.
2. Место учебной дисциплины в структуре ООП:
Для освоения данной дисциплины необходимы знание основ программирования, умение работать с средствами разработки программного обеспечения, знать архитектуру высокопроизводительных вычислительных систем.
Данная дисциплина является предшествующей для изучения следующих дисциплин: «Численные методы», «Технологии работы с суперкомпьютерами», профильные дисциплины.
3. Требования к результатам освоения дисциплины
Компетенции обучающегося, формируемые в результате освоения дисциплины(модуля):
Процесс изучения дисциплины направлен на формирование следующих компетенций:
ОК-10, ОК-11, ОК-16, ПК-3, ПК-10, ПК-9, ПК-12
В результате изучения дисциплины студент должен:
знать основы архитектур высокопроизводительных вычислительных систем, технологии параллельного программирования MPI и OpenMP, модели параллельных вычислений, базовые параллельные алгоритмы и особенности их реализации на высокопроизводительных вычислительных системах, методы отладки и настройки эффективности параллельных программ;
уметь разрабатывать параллельные программы для высокопроизводительных вычислительных систем, настраивать эффективность разрабатываем параллельных программ с учетом особенностей целевых высокопроизводительных систем;
владеть средствами и технологиями разработки параллельных программ для высокопроизводительных вычислительных систем.
4. Образовательные технологии
При чтении лекций используются компьютерные презентации.
5.1 Содержание учебной дисциплины (модуля). Объем дисциплины и виды учебных занятий
Вид* учебной работы | Всего часов | Семестры |
|
6 | |||
Аудиторные занятия (всего) | 68 | 68 | |
В том числе: | - | - | |
Лекции | 51 | 51 | |
Лабораторные работы (ЛР) | 17 | 17 | |
Самостоятельная работа (всего) | 40 | 40 | |
В том числе: | - | - | |
Подготовка лабораторных работ | 40 | 40 | |
Вид текущего контроля успеваемости | отчет | отчет | |
Вид промежуточной аттестации (зачет, экзамен) | зачет | зачет | |
Общая трудоемкость час зач. ед. | 108 | 108 | |
3 | 3 |
*(В соответствии с Типовым положением о вузе к видам учебной работы отнесены: лекции, консультации, семинары, практические занятия, лабораторные работы, контрольные работы, коллоквиумы, самостоятельные работы, научно-исследовательская работа, практики, курсовое проектирование (курсовая работа). Вуз может устанавливать другие виды учебных занятий).
5.2. Содержание разделов учебной дисциплины
№ п/п | Наименование раздела дисциплины | Содержание раздела | Формы текущего контроля успеваемости (по неделям семестра) |
1. | Введение в дисциплину. | Цели и содержание спецкурса. Обзор проблематики высокопроизводительных параллельных вычислений. | отчет |
2. | Современные параллельные вычислительные системы. | Современные направления развития параллельных вычислительных систем. Принципы построения параллельных вычислительных систем с разделяемой и распределенной памятью. Многоядерные процессоры. Архитектура и программное обеспечение высокопроизводительных вычислительных систем МГУ им. Н. П. Огарева | Отчет по лаб. работе. |
3. | Модели параллельных вычислений. | Понятие о модели параллельных вычислений. Обзор базовых параллельных алгоритмов линейной алгебры, включая векторно-матричные операции (плотные и разреженные матрицы), решение систем линейных уравнений, параллельную сортировку данных. | Отчет по лаб. работе. |
4. | Оценка эффективности параллельных программ. | Методы оценки эффективности параллельных программ. Понятие эффективности параллельных программ, методы оценки эффективности, закон Амдаля. | Отчет по лаб. работе. |
5. | Модель параллелизма по управлению. | Понятие модели параллелизма по управлению. Выполнение OpenMP программы (Fork and Join Model). Модель памяти. Понятие консистентности памяти. Консистентность памяти в OpenMP (weak ordering). Классы переменных. Основные понятия: директивы и клаузы. Понятие структурного блока. Компиляция OpenMP программы. Параллельная область. Понятие задачи. Конструкции распределения работы. | Отчет по лаб. работе. |
6. | Технология OpenMP. | Конструкции OpenMP для синхронизации нитей. Система поддержки выполнения OpenMP-программ. Переменные окружения, управляющие выполнением OpenMP-программы. Наиболее часто встречаемые ошибки в OpenMP-программах. Функциональная отладка OpenMP-программ. Отладка эффективности OpenMP-программ. Использование OpenMP на кластере. | Отчет по лаб. работе. |
7. | Модель параллелизма на основе передачи сообщений. Стандарт MPI. | Принципы построения параллельных программ с использованием модели передачи сообщений. Стандарты MPI-1, MPI-2 и их реализации: MPICH, Lam MPI, OpenMPI. | Отчет по лаб. работе. |
8. | Технология разработки програм на основе MPI. | Основные понятия MPI: сообщение, коммуникатор, двусторонние и коллективные передачи, режимы передачи сообщений. Особенности трансляции и запуска MPI-программ в конкретных операционных средах. Организация двухсторонних взаимодействий в MPI. Основные функции MPI для поддержки двухсторонних передач сообщений. Понятие о коллективных операциях. Функции MPI поддержки коллективных операций. Реализация параллельных алгоритмов линейной алгебры с использованием двухсторонних и коллективных операций. Группировка данных для организации коммуникаций. Производные типы данных в MPI. Конструкторы производных типов. Упаковка данных. Примеры использования производных типов для реализации векторно-матричных операций. Операции над коммуникаторами. Виртуальные топологии. Примеры реализации параллельных программ с использованием базовых операций MPI. | Отчет по лаб. работе. |
9. | Примеры решения задач линейной алгебры с использованием параллельных вычислений. | Параллельные алгоритмы матричного умножения. Общая характеристика, способы распределения данных, оценка сложности. Блочные параллельные алгоритмы, особенности реализации с использованием функций MPI. Реализация базовых векторно-матричных операций в библиотеках BLAS, ESSL, MKL. | Отчет по лаб. работе. |
(Содержание указывается в дидактических единицах. По усмотрению разработчиков материал может излагаться не в форме таблицы)
5.3 Разделы учебной дисциплины и междисциплинарные связи с обеспечиваемыми (последующими) дисциплинами
№ п/п | Наименование обеспе-чиваемых (последую-щих) дисциплин | № № разделов данной дисциплины, необходимых для изучения обеспечиваемых (последующих) дисциплин | ||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
1. | Технологии работы с суперкомпьютерами | + | + | + | + | + | + | + | + | |
2. | Численные методы | + | + | + | + | + | + | + | ||
3. | Дисциплины профиля | + | + | + | + | + | + | + | + |
5.4 Разделы дисциплин и виды занятий
№ п/п | Наименование раздела дисциплины | Лекц. | Практ. зан. | Лаб. зан. | Семин | СРС | Все-го час. |
1. | Введение в дисциплину. | 2 | 2 | 4 | |||
2. | Современные параллельные вычислительные системы. | 4 | 2 | 4 | 10 | ||
3. | Модели параллельных вычислений. | 3 | 1 | 4 | 8 | ||
4. | Оценка эффективности параллельных программ. | 4 | 1 | 4 | 9 | ||
5. | Модель параллелизма по управлению. | 4 | 1 | 4 | 9 | ||
6. | Технология OpenMP. | 4 | 1 | 4 | 9 | ||
7. | Модель параллелизма на основе передачи сообщений. Стандарт MPI. | 6 | 2 | 4 | 12 | ||
8. | Технология разработки програм на основе MPI. | 8 | 2 | 4 | 14 | ||
9. | Примеры решения задач с использованием параллельных вычислений. | 16 | 7 | 10 | 33 |
6. Лабораторный практикум
№ п/п | № раздела дисциплины | Наименование лабораторных работ | Трудо-емкость (час.) |
1. | 2 | Установка и настройка средств параллельного программирования | 2 |
2. | 3, 4 | Оценка эффективности параллельной программы вычисления числа π | 2 |
3. | 5, 6 | Разработка программы для численного решения задачи Дирихле с использованием OpenMP. | 2 |
4. | 7, 8, 9 | Вычисление суммы элементов массива. | 2 |
5. | Вычисление скалярного произведения векторов. | 2 | |
6. | Вычисление суммы двух матриц. | 2 | |
7. | Вычисление произведения матрицы и вектора. | 2 | |
8. | Вычисление произведения двух матриц | 3 |
7. Практические занятия (семинары)
Практические занятия отсутствуют.
8. Оценочные средства для текущего контроля успеваемости,
промежуточной аттестации по итогам освоения дисциплины и учебно-
методическое обеспечение самостоятельной работы студентов.
Вопросы для промежуточного контроля знаний и аттестации.
Современные направления развития параллельных вычислительных систем. Принципы построения параллельных вычислительных систем с разделяемой и распределенной памятью. Многоядерные процессоры. Понятие о модели параллельных вычислений. Обзор базовых параллельных алгоритмов линейной алгебры, включая векторно-матричные операции (плотные и разреженные матрицы), решение систем линейных уравнений, параллельную сортировку данных. Методы оценки эффективности параллельных программ. Понятие эффективности параллельных программ, методы оценки эффективности, закон Амдаля. Понятие модели параллелизма по управлению. Выполнение OpenMP программы (Fork and Join Model). Модель памяти. Понятие консистентности памяти. Консистентность памяти в OpenMP (weak ordering). Классы переменных. Основные понятия OPenMP: директивы и клаузы. Понятие структурного блока. Компиляция OpenMP программы. Параллельная область. Понятие задачи. Конструкции распределения работы. Конструкции OpenMP для синхронизации нитей. Система поддержки выполнения OpenMP-программ. Переменные окружения, управляющие выполнением OpenMP-программы. Принципы построения параллельных программ с использованием модели передачи сообщений. Стандарты MPI-1, MPI-2 и их реализации: MPICH, Lam MPI, OpenMPI. Основные понятия MPI: сообщение, коммуникатор, двусторонние и коллективные передачи, режимы передачи сообщений. Особенности трансляции и запуска MPI-программ в конкретных операционных средах. Организация двухсторонних взаимодействий в MPI. Основные функции MPI для поддержки двухсторонних передач сообщений. Понятие о коллективных операциях. Функции MPI поддержки коллективных операций. Группировка данных для организации коммуникаций. Производные типы данных в MPI. Конструкторы производных типов. Упаковка данных. Операции над коммуникаторами. Виртуальные топологии. Параллельные алгоритмы матричного умножения. Реализация базовых векторно-матричных операций в библиотеках BLAS, ESSL, MKL.9. Учебно-методическое и информационное обеспечение учебной дисциплины:
а) основная литература
В. В. Воеводин, Вл. В. Воеводин Параллельные вычисления.- СПб: БХВ-Петебург, 2002.- 608 с. , Г Основы параллельных вычислений для многопроцессорных вычислительных систем.- Н. Новгород: Изд-во ННГУ, 2001 , Стесик программирование для многопроцессорных вычислительных систем.- СПб, БХВ-Петербург Антонов программирование с использованием технологии OpenMP: Учебное пособие.-М.: Изд-во МГУ, 2009. - 77 с.б) дополнительная литература
Королев процессоров электронных вычислительных машин. –М.: Изд. факультета ВМиК МГУ, 2003.
в) программное обеспечение и Интернет - ресурсы
http://www. parallel. ru http://www. mpi-forum. org http://www. openmp. org10. Материально-техническое обеспечение дисциплины:
1. Вычислительный кластер (0,3 TFlops); вычислительная лаборатория с программным обеспечением для разработки параллельных программ.
Авторы (разработчики):
Кафедра прикладной математики (место работы) | Старший преподаватель (занимаемая должность) | Р. В. Жалнин (инициалы, фамилия) | ||
____________________ (место работы) | _______________ (занимаемая должность) | _________________ (инициалы, фамилия) | ||
Рецензенты(эксперты) | ||||
____________________ (место работы) | _______________ (занимаемая должность) | _________________ (инициалы, фамилия) | ||
____________________ (место работы) | _______________ (занимаемая должность) | _________________ (инициалы, фамилия) |
Программа одобрена на заседании__________________________________________
(Наименование уполномоченного органа вуза (УМК, НМС, Ученый совет)
от________________ года, протокол №_________ .
*В качестве экспертов программы привлекаются работодатели.
5. Структура учебной дисциплины (модуля)
№ п/п | Раздел учебной дисциплины | Курс | Семестр | Неделя семестра | Виды* учебной работы, в т. ч. СРС и трудоёмкость (в часах) | Формы текущего контроля успеваемости (по неделям семестра) | Форма промежуточной аттестации | |||
1. | ||||||||||
2. | ||||||||||
3. | ||||||||||
*(В соответствии с Типовым положением о вузе к видам учебной работы отнесены: лекции, консультации, семинары, практические занятия, лабораторные работы, контрольные работы, коллоквиумы, самостоятельные работы, научно-исследовательская работа, практики курсовое проектирование ( курсовая работа). Вуз может устанавливать другие виды учебных занятий).


