ДВ.1 Использование средств параллельного программирования

advertisement
Рабочая программа дисциплины составлена в 2014 году в соответствии с
требованиями
ФГОС
ВО
по
направлению
подготовки
09.04.01
«Информатика и вычислительная техника» (уровень магистратуры) от
30.10.2014 г. № 1420.
Разработчик(и): Кафедра
параллельных
вычислений,
Арыков
Сергей
Борисович, к.ф.-м.н.
(кафедра, ФИО, ученая степень, ученое звание)
Рабочая программа дисциплины одобрена на заседании Методической
комиссии факультета информационных технологий от 07.05.2014 года,
протокол № 58
2
Аннотация рабочей программы дисциплины
Дисциплина «Использование средств параллельного программирования
пакета Матлаб» входит в вариативную часть образовательной программы
магистратуры 09.04.01 Информатика и вычислительная техника.
Высокопроизводительные вычислительные системы.
Дисциплина реализуется на факультете информационных технологий НГУ
кафедрой (кафедрами) Параллельных вычислений.
Содержание дисциплины охватывает круг вопросов, связанных с
применением параллельных вычислений в инженерной среде MATLAB для
проектирования сложных устройств и выполнения инженерных расчётов, в
том числе имитационного моделирования, которое часто занимает
продолжительное время и требует ускорения.
Дисциплина нацелена на формирование общекультурной компетенции ОК-8
и профессиональной компетенций ПК-14 выпускника.
Преподавание дисциплины предусматривает проведение следующих видов
учебных занятий: лекции, лабораторные работы, самостоятельная работа
студента.
Рабочая программа дисциплины предусматривает проведение следующих
видов контроля: текущий контроль успеваемости в форме приема задач и
промежуточный контроль в форме дифференцированного зачёта.
Объем дисциплины 4 зачетных единицы, в том числе в академических часах
по видам учебных занятий:
Сем
естр
Общий
объем
2
144
учебные занятия
в том числе
контактная работа обучающихся с
преподавателем
Всего
из них
Лекции Лабор Практи КСР Конс
ные
ческие
ульта
занят занятия
ции
ия
32
8
24
СРС
112
форма
промежуточ
ной
аттестации
(зачет,
дифференци
рованный
зачет,
экзамен)
дифференци
рованный
зачет
3
1. Цели освоения дисциплины
Дисциплина «Использование средств параллельного программирования
пакета Матлаб» имеет своей целью:
 познакомить студента с использованием современных промышленных
сред разработки для решения задач с повышенными требованиями к
объёму вычислений;
 познакомить студента с типовыми подходами к распараллеливанию
задач под различные архитектуры с акцентом на нюансы их
применения в среде MATLAB;
 формирование умения решать практические задачи с использованием
параллельных вычислений в MATLAB.
2. Место дисциплины в структуре образовательной программы
Дисциплина входит в вариативную частью образовательной программы
магистратуры.
Дисциплина логически дополняет курсы «Организация вычислений на
кластерах и грид», позволяя студентам глубже разобраться в проблемах, с
которыми сталкиваются разработчики параллельных программ при
использовании промышленных инженерных систем моделирования.
Для успешного освоения дисциплины учащийся должен:
 уметь
разрабатывать
простейшие
параллельные
с помощью MPI, OpenMP и технологии CUDA;
программ
 владеть языком программирования C/C++; английским языком на
уровне, достаточном для чтения технической документации.
С другими частями образовательной программы дисциплина соотносится
следующим образом.
 Дисциплины, предшествующие по учебному плану:
o «Организация вычислений на кластерах и грид»
3. Компетенции обучающегося, формируемые в результате освоения
дисциплины (перечень планируемых результатов обучения)
В результате освоения данной дисциплины обучающийся демонстрирует
следующие общекультурные и профессиональные компетенции:
4
компетенции
Код
Формулировка
компетенции из ФГОС
Планируемые
достижения
результаты
заданного
обучения
уровня
(показатели
освоения
компетенций)
ОК8
способностью к
профессиональной
эксплуатации
современного
оборудования и
приборов (в
соответствии с целями
магистерской
программы
Знать: виды оборудования, на котором
возможно использовать среду MATLAB,
технические требования к каждому виду
оборудования.
Уметь: разрабатывать на языке MATLAB
параллельные программы, которые могут
исполняться на компьютерах с общей
памятью, кластерах, а также на компьютерах
с
установленными
графическими
ускорителями.
ПК14
способностью к
программной
реализации систем с
параллельной
обработкой данных и
высокопроизводитель
ных систем
Знать:
уровни
параллельного
программирования, поддерживаемые средой
MATLAB,
встроенные
средства
распараллеливания
типовых
задач,
специальные конструкции языка MATLAB
для разработки параллельных программ,
подходы к интеграции параллельных средств
разработки MATLAB и MPI.
Уметь: разрабатывать на языке MATLAB
параллельные программы для решения
вычислительных задач и математического
моделирования
5
4. Объем, структура и содержание дисциплины
Консультации
Практические
занятия
Контроль
самостоятельно
й работы (КСР)
Раздел (тема)
дисциплины
Лабораторные
занятия
№
п/п
Семестр (из учебного плана)
Неделя семестра (из учебного
плана)
лекции
Контактная работа
обучающихся с
преподавателем по видам
учебных занятий (из учебного
плана, в часах)
Самостоятельная работа
обучающихся (из учебного
плана, в часах)
4.1. Объем дисциплины составляет 4 зачетных единицы, 144 академических
часа.
4.2. Структура дисциплины
Формы
текущего
контроля
успеваемости
(по неделям
семестра)
Форма
промежуточной
аттестации
(по семестрам,
из учебного
плана)
Прием задач
1 Выполнение
научных расчётов
2 Основы
программирования в
MATLAB
2
1
1
3
14
2
3,5
2
6
20
3 Профилирование и
оптимизация
последовательных
программ
4 Программирование
независимых задач
5 Программирование
взаимодействующих
задач
2
7
1
3
10
Прием задач.
Оценка за
контрольную
неделю
Прием задач
2
9
1
3
13
Прием задач
2
11
1
3
13
6 Профилирование и
оптимизация
параллельных
программ
7 Вычисления на
графическом
процессоре
Промежуточная
аттестация
ИТОГО часов:
2
13
1
3
10
Прием задач.
Оценка за
контрольную
неделю
Прием задач
2
15
1
3
16
Прием задач
16
Дифференциро
ванный зачет
2
17
8
24
112
6
4.3. Содержание дисциплины, структурированное по темам (разделам)
Раздел (тема), Код
компетенции
Выполнение научных
расчётов
(ПК-14)
Основы
программирования в
MATLAB
(ПК-14)
Профилирование и
оптимизация
последовательных
программ
(ПК-14)
Программирование
независимых задач
(ОК-8, ПК-14)
Программирование
взаимодействующих
задач (ОК-8, ПК-14)
Профилирование и
оптимизация
параллельных
программ (ПК-14)
Вычисления на
графическом
процессоре (ОК-8,
ПК-14)
№ занятия
Лекции – 8 часов (из учебного плана).
1
2
3
4
5
6
7
8
Содержание лекций и ссылки на
рекомендуемую литературу
Переменные. Операции с числами.
Операции с векторами и матрицами.
Построение графиков.
Создание скриптов. Создание функций.
Кол-во часов
В
интер
всего актив
ной
форме
1
0
1
0
1
0,5
1
1
Распараллеливание циклов. Асинхронное
исполнение функций. Пакетный режим.
1
0,5
Распределённые массивы данных.
Пакетный режим.
1
0,5
1
1
1
0,5
8
4
Управляющие операторы. Создание
графического интерфейса. Разработка
полноценных программ.
Использование встроенного
профилировщика. Оптимизация скорости
исполнения. Оптимизация работы с
памятью.
Режим PMODE. Профилирование
параллельных программ. Использование
монитора работ. Балансировка загрузки.
Работа с массивами данных. Вычисления на
GPU. Создание CUDA-ядер.
Итого:
7
Раздел (тема), Код
компетенции
Выполнение научных
расчётов
(ПК-14)
Основы
программирования в
MATLAB
(ПК-14)
№ занятия
Лабораторные занятия – 24 часа (из учебного плана).
Содержание занятий и ссылки на
рекомендуемую литературу
Лабораторная работа №1. Выполнение
научных расчётов.
Цель работы: научиться использовать
MATLAB для типовых научных и
инженерных расчётов.
Задания:
 изучить командный режим работы в
MATLAB
 проверить основные команды для
работы с числами, векторами,
1
матрицами
 решить в MATLAB предложенные
системы уравнений
 выполнить в MATLAB
интегрирование и
дифференцирование предложенных
функций
 построить графики алгебраических и
трансцендентных функций
Лабораторная работа №2. Основы
программирования в MATLAB.
Цель работы: научиться разрабатывать
скрипты, функции, и полноценные
программы с графическим интерфейсом в
MATLAB.
Задания:
 разработать скрипты и функции для
построения графиков
тригонометрических функций
2,
3
 разработать программу,
реализующую арифметический
калькулятор
 разработать программу с
графическим интерфейсом для
решения квадратного уравнения,
позволяющую пользователю
интерактивно вводить
коэффициенты уравнения и получать
ответы
Кол-во часов
В
интер
всего актив
ной
форме
3
0
6
2
8
Профилирование и
оптимизация
последовательных
программ
(ПК-14)
4
Программирование
независимых задач
(ОК-8, ПК-14)
Программирование
взаимодействующих
задач (ОК-8, ПК-14)
5
6
Лабораторная работа №3. Профилирование
и оптимизация последовательных программ
Цель работы: освоить использование
встроенных в MATLAB инструментов для
профилирования и оптимизации
последовательных программ.
Задания:
 изучить работу и опробовать на
тестовых задачах следующие
инструменты: Code Analyzer,
MATLAB Profiler
 изучить работу и опробовать на
тестовых задачах следующие
приёмы оптимизации:
предварительное выделение памяти
(preallocation), векторизация,
использование подходящих
логических операторов, оптимизация
использования System objects,
использование MEX-функций
Лабораторная работа №4. Независимые
задачи
Цель работы: освоить конструкции языка
MATLAB, позволяющие создавать
параллельные программы с несколькими
независимыми ветвями исполнения
Задания:
 освоить реализацию параллелизма
по задачам (цикл parfor) на примере
решения 2D волнового уравнения
 освоить реализацию параллелизма
по данным (оператор spmd)
Лабораторная работа №5.
Взаимодействующие задачи
Цель работы: освоить конструкции языка
MATLAB, позволяющие создавать
параллельные программы с несколькими
взаимодействующими ветвями исполнения
Задания:
 решить 2D волновое уравнение с
помощью взаимодействующих задач
 сравнить с решением этой же задачи
с помощью parfor с точки зрения
быстродействия и трудоёмкости
реализации
3
2
3
2
3
2
9
Профилирование и
оптимизация
параллельных
программ (ПК-14)
Вычисления на
графическом
процессоре (ОК-8,
ПК-14)
7
8
Лабораторная работа №6. Профилирование
и оптимизация параллельных программ
Цель работы: освоить использование
встроенных в MATLAB инструментов для
профилирования и оптимизации
параллельных программ
Задания:
 выполнить профилировку программ
решения 2D волнового уравнения из
лаб. работы №4 и №5
 выполнить оптимизацию этих
программ по критерию, указанному
преподавателем
 выполнить балансировку загрузки в
командном режиме
Лабораторная работа №7. Вычисления на
графическом процессоре
Цель работы: научиться использовать
графический процессор из MATLAB для
ускорения вычислений.
Задания:
 решить 2D волновое уравнение с
использованием графического
процессора
 сравнить с решением этой же задачи
с помощью parfor и
взаимодействующих задач с точки
зрения быстродействия и
трудоёмкости реализации
Итого:
3
2
3
2
24
12
Раздел (тема), Код
компетенции
№
занятия
Самостоятельная работа – 112 часов (из учебного плана).
Самостоятельная работа студентов предусматривает:
Выполнение научных
расчётов
(ПК-14)
1
Основы
программирования в
MATLAB
(ПК-14)
2
3
Вид работы
Норма
времени на
выполнение
(в часах)
изучение разделов дисциплины по учебной
литературе, в том числе вопросов, не
освещаемых на лекциях
подготовка к лабораторным занятиям
8
подготовка к контролю текущих знаний по
дисциплине
изучение разделов дисциплины по учебной
литературе
подготовка к лабораторным занятиям
подготовка к контролю текущих знаний по
дисциплине
изучение разделов дисциплины по учебной
литературе
2
4
3
5
2
3
10
Профилирование и
оптимизация
последовательных
программ
(ПК-14)
Программирование
независимых задач
(ОК-8, ПК-14)
Программирование
взаимодействующих
задач (ОК-8, ПК-14)
Профилирование и
оптимизация
параллельных
программ (ПК-14)
Вычисления на
графическом
процессоре (ОК-8,
ПК-14)
4
5
6
7
8
подготовка к лабораторным занятиям
подготовка к контролю текущих знаний по
дисциплине
изучение разделов дисциплины по учебной
литературе
подготовка к лабораторным занятиям
подготовка к контролю текущих знаний по
дисциплине
изучение разделов дисциплины по учебной
литературе, в том числе вопросов, не
освещаемых на лекциях
подготовка к лабораторным занятиям
подготовка к контролю текущих знаний по
дисциплине
изучение разделов дисциплины по учебной
литературе
5
подготовка к лабораторным занятиям
подготовка к контролю текущих знаний по
дисциплине
изучение разделов дисциплины по учебной
литературе
6
подготовка к лабораторным занятиям
подготовка к контролю текущих знаний по
дисциплине
изучение разделов дисциплины по учебной
литературе, в том числе вопросов, не
освещаемых на лекциях
подготовка к лабораторным занятиям
подготовка к контролю текущих знаний по
дисциплине
Подготовка к дифференцированному
зачёту
Итого:
4
2
2
4
4
4
6
3
4
3
2
4
6
7
3
16
112
Раздел (тема), Код
компетенции
Выполнение научных
расчётов
(ПК-14)
№
темы
Темы дисциплины для самостоятельного изучения
1
2
Содержание темы для
самостоятельного изучения и
ссылки на литературу
Дополнительные команды MATLAB
для работы с числами, векторами и
матрицами
Кол-во
часов
2
Дополнительные виды графиков в
MATLAB
2
Форма
контроля
Контроль
ные
вопросы
при сдаче
задач
Контроль
ные
вопросы
при сдаче
задач
11
3
Автоматическая публикация отчётов
1
Программирование
независимых задач
(ОК-8, ПК-14)
4
Вычисления на
графическом
процессоре (ОК-8,
ПК-14)
5
Возможности пакета Optimization
Toolbox по автоматическому
распараллеливанию задач линейного
программирования
Возможности пакета Image Processing
Toolbox по обработке изображений на
GPU
Итого:
1
2
Контроль
ные
вопросы
при сдаче
задач
Контроль
ные
вопросы
при сдаче
задач
Контроль
ные
вопросы
при сдаче
задач
8
5. Образовательные технологии
Применяются следующие интерактивные формы проведения занятий:
Вид учебного
занятия
Вид интерактивной формы
проведения занятия
Лекции
Метод
анализа
ситуаций
Лабораторные работы
Групповые дискуссии
конкретных
Объём
часов
4
12
В
рамках
дисциплины
«Использование
средств
параллельного
программирования пакета Матлаб» предусмотрена встреча с представителем
Центра компетенций MathWorks в России и СНГ (официальный
представитель компании MathWorks, разработчика продукта MATLAB, в
России) по Сибири и Дальнему Востоку.
5.1. Метод анализа конкретных ситуаций
Учащимся предлагается осмыслить реальную задачу параллельного
программирования, описание которой одновременно отражает не только
практическую проблему, но и актуализирует определенный комплекс знаний,
который необходимо усвоить при разрешении данной проблемы. При этом,
сама задача, часто, не имеет однозначных решений.
Метод позволяет студентам проявить инициативу, почувствовать
самостоятельность в освоении теоретических положений и овладении
практическими навыками, способствует их взрослению, формирует интерес
и позитивную мотивацию к учебе.
Метод анализа конкретных ситуаций направлен не столько на освоение
конкретных знаний или умений, сколько на развитие общего
интеллектуального и коммуникативного потенциала учащегося.
12
5.2. Групповые дискуссии
При проведении групповой дискуссии каждый член группы получает
возможность предложить своё собственное решение поставленной задачи,
достоинства и недостатки которого затем обсуждаются всеми участниками
дискуссии.
Метод позволяет обнаружить многообразие подходов, обеспечить
всестороннее видение задачи. Кроме того, групповая дискуссия активизирует
творческие возможности человека, его интерес к предмету обсуждения.
5.3. Метод индивидуально-дифференцированного обучения
Метод реализуется с использованием сети Интернет и позволяет в
интерактивном
режиме
индивидуально
с
каждым
студентом
взаимодействовать с помощью:
 вопросов-ответов, связанных с дополнительными самостоятельными
заданиями или индивидуальными нестандартными (более сложными)
заданиями;
 выдачи дополнительных заданий или нестандартных (более сложных)
заданий, включающих, в том числе, вопросы исследовательского
характера.
6. Перечень учебно-методического обеспечения для самостоятельной
работы обучающихся по дисциплине
Методические рекомендации по самостоятельной работе обучающихся
приводятся в приложении к рабочей программе дисциплины (Приложение
А).
7. Фонд оценочных средств для проведения текущей и промежуточной
аттестации обучающихся по дисциплине
7.1. Перечень компетенций с указанием этапов их формирования приведен в
описании образовательной программы
Компетенция
ОК-8
ОК-8
ПК-14
Знания, умения, навыки
Виды оборудования, на котором
возможно
использовать
среду
MATLAB, технические требования к
каждому виду оборудования.
Разработка на языке MATLAB
параллельных программ, которые
могут исполняться на компьютерах с
общей памятью, кластерах, а также на
компьютерах
с
установленными
графическими ускорителями.
Уровни
параллельного
Процедура оценивания
Устные вопросы при
защите лабораторных
работ, устные вопросы на
диф. зачёте
Демонстрация
функционала программы,
разработанной в рамках
каждой лабораторной
работы
Устные вопросы при
13
ПК-14
программирования, поддерживаемые
средой
MATLAB;
встроенные
средства распараллеливания типовых
задач;
специальные
конструкции
языка MATLAB для разработки
параллельных программ; подходы к
интеграции параллельных средств
разработки MATLAB и MPI.
Разработка на языке MATLAB
параллельных программ для решения
вычислительных
задач
и
математического моделирования
защите лабораторных
работ, устные вопросы на
диф. зачёт
Демонстрация
функционала программы,
разработанной в рамках
каждой лабораторной
работы
7.2. Описание показателей и критериев оценивания компетенций, описание
шкал оценивания
Пороговый
Уровень
Выделяются два показателя уровня сформированности компетенции
ОК-8: способностью к профессиональной эксплуатации современного
оборудования и приборов (в соответствии с целями магистерской
программы)
Показатели (что
Оценочная шкала
обучающийся
удовлетворительно хорошо
отлично
должен
продемонстриров
ать)
Иметь
представление:
об эксплуатации
современного
высокопроизводител
ьного оборудования
для решения задач
моделирования в
MATLAB
Уметь:
разрабатывать на
языке MATLAB
параллельные
программы, которые
могут исполняться
на компьютерах с
общей памятью,
кластерах, а также на
компьютерах с
установленными
графическими
ускорителями
Имеет неполное
(фрагментарное,
недооценивает)
представление об
использовании
суперкомпьютеров
для моделирования,
демонстрирует
понимание только
общих классов
решаемых задач в
MATLAB
Демонстрирует
владение языковыми
средствами MATLAB
для разработки
параллельных
программ для
компьютеров с общей
памятью
Допускает
неточности
(понимает
сущность, осознает
значимость) при
определении места
суперкомпьютеров
при решении задач
в MATLAB,
описывает
основные
технические
требования к
поддерживаемому
MATLAB
оборудованию
Демонстрирует
уверенное владение
языковыми
средствами
MATLAB для
разработки
параллельных
программ для
компьютеров с
общей памятью и
кластеров
Имеет четкое
(целостное)
представление о
видах
оборудования, на
котором можно
использовать
MATLAB, детально
описывает
технические
требования к
каждому виду
оборудования
Демонстрирует
уверенное владение
языковыми
средствами
MATLAB для
разработки
параллельных
программ для
компьютеров с
общей памятью,
кластеров и
графических
ускорителей
14
Базовый
Уровень
Выделяются два показателя уровня сформированности компетенции
ПК-14: способностью к программной реализации систем с параллельной
обработкой данных и высокопроизводительных систем
Показатели (что
Оценочная шкала
обучающийся
удовлетворительно хорошо
отлично
должен
продемонстриров
ать)
Представление об
уровнях
параллельного
программирования,
поддерживаемых
средой MATLAB;
встроенных
средствах
распараллеливания
типовых задач;
специальные
конструкции языка
MATLAB для
разработки
параллельных
программ; подходы к
интеграции
параллельных
средств разработки
MATLAB и MPI.
Умеет разрабатывать
на языке MATLAB
параллельные
программы для
решения
вычислительных
задач и
математического
моделирования
Имеет неполное
Допускает
(фрагментарное,
неточности
недооценивает)
(понимает
представление о
сущность, осознает
возможностях
значимость) при
MATLAB для
описании
параллельного
возможностей
программирования;
среды MATLAB
понимает работу
для параллельного
только основных
программирования;
конструкций языка
понимает принцип
MATLAB,
работы всех
ориентированных на конструкций языка
параллельные
MATLAB,
вычисления
ориентированных
Демонстрирует
на параллельные
владение базовыми
вычисления
языковыми
Демонстрирует
средствами MATLAB уверенное владение
для решения
всеми языковыми
вычислительных задач средствами
и математического
MATLAB для
моделирования
решения
вычислительных
задач и
математического
моделирования
Имеет четкое
(целостное)
представление о
возможностях
MATLAB для
разработки
параллельных
программ;
понимает принцип
работы всех
конструкций языка
MATLAB,
ориентированных
на параллельные
вычисления;
описывает способ
интеграции
MATLAB и MPI.
Демонстрирует
уверенное владение
всеми языковыми
средствами
MATLAB для
решения
вычислительных
задач и
математического
моделирования;
демонстрирует
умение применять
встроенные
средства
профилировки и
оптимизации для
повышения
качества
разрабатываемых
программ
Если хотя бы одна из компетенций не сформирована, то положительной
оценки по дисциплине быть не может.
15
7.3. Типовые контрольные задания
Примеры вопросов на защите лабораторных работ:
1. Какие типы числовых данных поддерживаются в языке MATLAB?
Приведите примеры каждого типа данных.
2. Какие графики позволяет строить среда MATLAB?
3. Какие подходы предлагает среда MATLAB для разработки программ,
исполняющихся на графических процессорах?
4. Какие ограничения накладываются на использование оператора parfor?
5. Возможен ли запуск одной и той же программы на локальном
компьютере с несколькими ядрами и на кластере?
Примеры вопросов на дифференцированном зачёте:
1. Визуализация данных. Построение 2D и 3D графиков, объемной
визуализации, анимации.
2. Цикл parfor, преобразование циклов for в parfor.
3. Режим PMODE.
4. Ввод информации в MATLAB. Чтение данных из файлов, из
Интернета, со специализированной аппаратуры, из других программ.
5. Асинхронное исполнение функций.
6. Возможности встроенного профилировщика
7.4. Методические материалы, определяющие процедуры оценивания
знаний, умений, навыков и (или) опыта деятельности, характеризующих
этапы формирования компетенций
Текущий контроль и промежуточная аттестация осуществляются на основе
балльно-рейтинговой системы, принятой в образовательной программе. В
таблице (см. ниже) приведено максимальное количество баллов, которое
может набрать студент по видам учебной деятельности в течение семестра и
диапазоны баллов, соответствующие минимальному и максимальному
количествам баллов. Максимальная сумма баллов за семестр составляет 100
баллов (текущий рейтинг – 80 баллов, промежуточная аттестация – 20
баллов).
Текущий контроль. Включает в себя прием лабораторных работ и
выставление оценок за контрольные недели.
Правила приёма лабораторных работ:
1. В течение семестра необходимо представить и защитить 7
лабораторных работ в сроки, установленные учебным графиком (см.
таблицу).
16
2. К защите допускаются студенты, выполнившие лабораторные работы в
полном объеме (все задания согласно варианту).
3. На защите каждой лабораторной работы предлагается 3 вопроса (по
ходу защиты), связанных с выполнением практических заданий.
4. Максимальное количество баллов за лабораторную работу
выставляется, если студент полностью ответил на все вопросы, без
серьезных замечаний и недочетов.
5. Минимальное количество баллов выставляется, если студент ответил
на два вопроса из трёх, с серьезными замечаниями, недочетами.
6. Пересдача лабораторной работы назначается, если студент не
ориентируется в учебном материале, не может объяснить ход и
результаты выполнения работы. В случае пересдачи лабораторной
работы происходит потеря баллов (максимальное количество баллов
составляет 5, 7, 9, 10,12 или 14 в зависимости от вида работы).
7. В случае представления и защиты работ с опозданием от учебного
графика происходит потеря баллов (опоздание на 1 неделю – потеря 1
или 2 балла в зависимости от вида работы, опоздание на 2 недели –
потеря 2 или 3 балла, 3 недели и более – потеря 50% баллов от
максимально возможного).
Оценки за контрольную неделю выставляются согласно набранному
количеству баллов по следующим правилам:
 Первая контрольная неделя
 16-18 балла - «отлично»
 12-15 балла - «хорошо»
 8-11 баллов - «удовлетворительно»
 Вторая контрольная неделя
 50-54 балла - «отлично»
 46-49 баллов - «хорошо»
 40-45 баллов - «удовлетворительно»
Промежуточная
аттестации:
аттестация.
Правила
проведения
промежуточной
1. К промежуточной аттестации допускаются студенты, сдавшие все
лабораторные работы и набравшие не менее 50% (40 баллов) по
результатам текущего рейтинга.
2. Промежуточная аттестация проводится в форме дифференциального
зачёта, на котором студент должен ответить на три вопроса.
3. Максимальное количество 18-20 баллов выставляется, если все
теоретические вопросы отвечены полностью, без серьезных
замечаний.
17
4. Количество баллов 14-17 выставляется, если дан полный ответ на два
теоретических вопроса из трёх.
5. Минимальное количество баллов 10-13 выставляется, если по двум
теоретическим вопросам из трёх имеются серьезные замечания,
недочеты.
№
п/п
Вид учебной
работы
(учебной
деятельности)
Максимальное
количество
баллов
1. Лаб. работа №1
2. Лаб. работа №2
3. Лаб. работа №3
4. Лаб. работа №4
5. Лаб. работа №5
6. Лаб. работа №6
7. Лаб. работа №7
Итого по текущему
рейтингу:
8 Дифференциров
анный зачёт
Итого за семестр:
Диапазоны
баллов
Срок
представления и
защиты
(неделя
семестра)
6
12
12
8
16
14
12
80
3-6
6-12
6-12
4-8
8-16
7-14
6-12
40-80
2
6
8
10
12
14
16
20
10-20
17
100
90-100 (отл.)
70-89 (хор.)
50-69 (уд.)
< 50 (не уд.)
8. Перечень основной и дополнительной учебной литературы,
необходимой для освоения дисциплины
а) основная литература:
1. Оленёв Н.Н. Печёнкин Р.В. Чернецов А.М. Параллельное
программирование в MATLAB и его приложения. – М.:
Вычислительный центр РАН им А.А. Дородницына, 2007. – 120 с.
http://www.ccas.ru/mmes/distcompbook.pdf
б) дополнительная литература:
2. Кривилев А. Основы компьютерной математики с использованием
системы MATLAB. М.: Лекс-Книга, 2005.
3. Коткин Г.Л. Компьютерное моделирование физических процессов
с использованием MATLAB : Учеб. пособие / Г.Л. Коткин, В.С.
Черкасский ; Новосиб. гос. ун-т, Физ. фак. — Новосибирск : НГУ,
2001 .— 173 с.
18
4. Поршнев С. Компьютерное моделирование физических процессов
в пакете MATLAB : учебное пособие : [для студентов вузов,
обучающихся по специальностям Математика, Информатика,
Физика] / С.В. Поршнев .— Изд. 2-е, испр. — Санкт-Петербург [и
др.]
:
Лань,
2011
.—
726
с.
URL:
http://e.lanbook.com/books/element.php?pl1_id=650
5. Введение в математическое моделирование : учебное пособие /
под ред. П.В. Трусов. - М. : Логос, 2004. - 439 с. - ISBN 5-94010272-7
;
То
же
[Электронный
ресурс].
URL:
http://biblioclub.ru/index.php?page=book&id=84691
6. Дьяконов, В.П. MATLAB 6/6.1/6.5 + Simulink 4/5 в математике и
моделировании: полное руководство пользователя / В.П.
Дьяконов. - М. : СОЛОН-ПРЕСС, 2008. - 566 с. : ил. - Библиогр. в
кн. - ISBN 5-93455-177-9 ; То же [Электронный ресурс]. - URL:
http://biblioclub.ru/index.php?page=book&id=271895
9. Перечень ресурсов информационно-телекоммуникационной сети
«Интернет», необходимых для освоения дисциплины
1. MATLAB. The Language of Technical Computing
URL: http://www.mathworks.com/help/matlab/index.html
2. Simulink. Simulation and Model-Based Design
URL: http://www.mathworks.com/help/simulink/index.html
3. Parallel Computing Toolbox
URL: http://www.mathworks.com/help/distcomp/index.html
10. Методические указания для обучающихся по освоению дисциплины
10.1 Общие рекомендации
Дисциплина «Использование средств параллельного программирования
пакета Матлаб» имеет своей целью:
 познакомить студента с использованием современных промышленных
сред разработки для решения задач с повышенными требованиями к
объёму вычислений;
 познакомить студента с типовыми подходами к распараллеливанию
задач под различные архитектуры с акцентом на нюансы их
применения в среде MATLAB;
 сформировать умение решать практические задачи с использованием
параллельных вычислений в MATLAB.
Для успешного освоения дисциплины рекомендуется повторить
теоретический материал по параллельным вычислениям над общей и
19
распределённой памятью, который будет существенно использоваться в
течение всего обучения.
Для успешного выполнения лабораторных работ рекомендуется повторить:
 язык программирования C/C++;
 инструменты разработки параллельных программ OpenMP, MPI,
технологию CUDA.
10.2. Методические указания по выполнению лабораторных работ
Каждая лабораторная работа требует предварительного изучения
теоретического материала.
№ Название
Цель работы
Методические указания
лабораторной
работы
1
Выполнение
Научиться использовать
1. Обратите внимание,
научных
MATLAB для типовых
что базовым классом для
расчётов
научных и инженерных
чисел в MATLAB
расчётов
является double.
2. Используйте команды
управления средой. Они
существенно ускоряют
процесс разработки.
2
Основы
Научиться разрабатывать Используйте
программирова скрипты, функции, и
возможность
ния в MATLAB полноценные программы автоматически создать
с графическим
скрипт из введенных
интерфейсом в MATLAB ранее команд через Окно
истории команд, чтобы
не набирать команды
повторно.
3
Профилирован Освоить использование
Обращайте внимание на
ие и
встроенных в MATLAB
подсказки анализатора
оптимизация
инструментов для
кода, которые
последовательн профилирования и
появляются в правой
ых программ
оптимизации
части редактора по ходу
последовательных
ввода программы
программ
4
Независимые
Освоить конструкции
Перед изучением
задачи
языка MATLAB,
конструкции MATLAB
позволяющие создавать
parfor рекомендуется
параллельные программы повторить директиву
с несколькими
#pragma omp parallel for
независимыми ветвями
стандарта OpenMP
20
5
Взаимодейству
ющие задачи
6
Профилирован
ие и
оптимизация
параллельных
программ
7
Вычисления на
графическом
процессоре
исполнения
Освоить конструкции
языка MATLAB,
позволяющие создавать
параллельные программы
с несколькими
взаимодействующими
ветвями исполнения
Освоить использование
встроенных в MATLAB
инструментов для
профилирования и
оптимизации
параллельных программ
Научиться использовать
графический процессор из
MATLAB для ускорения
вычислений
Рекомендуется
самостоятельно изучить
модель PGAS, которая
легла в основу
распределённых
массивов MATLAB
Рекомендуется изучать
возможности среды
MATLAB при
разработке приложений
для GPU в следующей
последовательности:
работа со специальными
массивами, разработка
собственных GPUфункций, создание
CUDA-ядер
10.3. Советы по планированию и организации времени, отведенного на
изучение дисциплины
Планирование – важнейшая черта человеческой деятельности, один из
характерных, обязательных признаков человеческого труда. Составление
списка дел – первый шаг к организации времени. Список имеет то
преимущество, что позволяет видеть всю картину в целом.
Регулярность – важное условие поисков более эффективных способов
работы. Регулярность не просто позволяет подготовиться к работе, она
создает настрой на работу, позволяет выработать правила выполнения
работы. Четкое фиксирование по времени регулярных дел, закрепление за
ними одних и тех же часов – важный шаг к организации времени. При учете
времени надо помнить об основной цели рационализации – получить
наибольший эффект с наименьшими затратами.
10.4. Разъяснения по поводу работы с модульно-рейтинговой системой
21
Рейтинг – это суммарная интегральная оценка, характеризующая уровень и
объём работы студентов в процессе усвоения учебного материала,
объективный интегральный критерий качества знаний студента, равный
сумме заработанных студентом баллов за различные контрольные
мероприятия.
В основе рейтинговой системы контроля знаний лежит комплекс
мотивационных стимулов, среди которых – своевременная и
систематическая оценка результатов в точном соответствии с реальными
достижениями студентов.
Основной алгоритм рейтинговой системы контроля знаний включает
следующие действия:
1. Весь курс по дисциплине разбивается на тематические разделы,
каждому из которых соответствует лабораторная работа. Контроль по
каждой лабораторной работе обязателен.
2. Результаты выполнения каждой лабораторной работы оцениваются в
баллах.
3. В конце обучения определяется сумма набранных за весь период
баллов и выставляется общая оценка.
Рекомендации по получению наивысшего балла:
1. Сдавайте лабораторные работы точно в срок. В случае представления
и защиты работ с опозданием от учебного графика происходит потеря
баллов (опоздание на 1 неделю – потеря 1 или 2 балла в зависимости
от вида работы, опоздание на 2 недели – потеря 2 или 3 балла, 3 недели
и более – потеря 50% баллов от максимально возможного).
2. Перед началом сдачи лабораторной работы убедитесь, что
разработанный программный код полностью работоспособен
(компилируется без ошибок, отрабатывает требуемые функции на
типовых примерах). В случае, если программный код не заработает с
первого раза, защита лабораторной работы переносится на следующее
занятие, а это ведёт к потере баллов.
3. Перед защитой лабораторной работы повторите теоретический
материал, который имеет к ней отношение, а также материал для
самостоятельного изучения, если он был задан преподавателем. Во
время защиты лабораторной работы будут заданы теоретические
вопросы. Серьезные замечания и недочеты в ответе ведут к потере
баллов.
11. Перечень информационных технологий, используемых при
осуществлении образовательного процесса по дисциплине, включая
22
перечень программного обеспечения и информационных справочных
систем (при необходимости)
Информационные технологии, использующиеся при реализации различных
видов учебной работы:
 Лекция. Преподавателем готовятся презентации (набор слайдов) для
каждой лекции.
 Лабораторная работа
 Поисковые системы
 Документации в электронной форме
 Инструменты разработки
 Самостоятельная работа
 Электронная почта
 Документация в электронной форме
Перечень необходимого лицензионного программного обеспечения
 Рабочее место MATLAB версии не ниже R2014b в составе:
o MATLAB
o Parallel Computing Toolbox
o Optimization Toolbox
o MATLAB Distributed Computer Server 16 ядер или более
12. Описание материально-технической базы, необходимой для
осуществления образовательного процесса по дисциплине
Лабораторные работы проводятся в терминальном классе. Каждому студенту
должно быть предоставлено отдельное рабочее место.
Аппаратные ресурсы компьютеров должны позволять исполнять без
существенных задержек среду разработки MATLAB версии не ниже 2014b.
23
Приложение А
(обязательное)
Методические рекомендации по самостоятельной работе обучающихся
по
дисциплине
«Использование
средств
параллельного
программирования пакета Матлаб»
1. План-график выполнения СРС по дисциплине
В процессе изучения дисциплины предусмотрено выполнение следующих
видов самостоятельной работы:
Вид самостоятельной
работы
Изучение разделов
дисциплины по
учебной литературе
Подготовка к
лабораторным
занятиям
Подготовка к
контролю текущих
знаний по
дисциплине
Изучение разделов
дисциплины по
учебной литературе,
не освещаемых на
лекциях
Итого
в неделю
часов
Номер недели семестра
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17
2
1
2
1
2
1
1
1
1
2
2
2
1
1
2
2
2
2
3
2
3
2
2
3
3
3
3
2
2
3
4
2
2
1
1
1
1
2
2
1
2
2
1
2
2
1
2
3
2
7
7
1
5
5
5
5
5
5
6
2
7
7
6
5
5
8
8
2. Характеристика и описание заданий на СРС
В процессе изучения
контрольные точки:
Контрольная точка
Первая контрольная неделя
Вторая контрольная неделя
дисциплины
предусмотрены
следующие
Срок сдачи (номер недели
семестра)
5
11
Краткое описание заданий для самостоятельной работы
1. Изучение разделов дисциплины по учебной литературе
Цель СРС: закрепление материала, полученного на лекциях.
24
Описание: этот вид СРС ориентирован на усвоение базового материала
по дисциплине.
2. Изучение разделов дисциплины по учебной литературе, не
освещаемых на лекциях
Цель СРС: получение дополнительных сведений, которые не вошли в
лекции.
Описание: некоторый материал, не являющийся критическим для
понимания дисциплины, не включен в лекции в силу временных
ограничений, но знакомство с ним поможет лучше понять логику
дисциплины и углубит её понимание в целом.
3. Подготовка к лабораторным занятиям
Цель СРС: окончательное завершение лабораторных работ, начатое на
лабораторных занятиях.
Описание: этот вид СРС предназначен для окончательного завершения
задач лабораторных работ, решение которых было начало в
терминальном классе (на лабораторных занятиях).
4. Подготовка к контролю текущих знаний по дисциплине
Цель СРС: подготовка к ответам на теоретические вопросы по теме
лабораторной работы
Описание: при защите каждой лабораторной работы преподавателем
задаются теоретические вопросы по теме лабораторной работы; этот
вид СРС отводит часы на подготовку к таким вопросам.
Рекомендации по выполнению СРС:
 Старайтесь работать ритмично, т.е. изучать материал лекции перед
лабораторными работами на тему этой лекции; выполнять
практические задания на той неделе, когда они были заданы.
 Выписывайте
основные
формулировки,
эта
информация
потребуется при подготовке к дифференцированному зачёту.
 Вначале изучения дисциплины повторите основы разработки
параллельных программ с помощью OpenMP, MPI, CUDA. Это
существенно поможет при выполнении практических заданий.
 Не занимайтесь более 5 часов в день и в выходные дни.
3. Примерные нормы времени на выполнение заданий контрольных точек
Указанное время включает часы на выполнение заданий на лабораторных
занятиях, а также время самостоятельной работы, необходимое для
успешного прохождения контрольной точки.
Контрольная точка
Первая контрольная неделя
Вторая контрольная неделя
Норма времени на выполнение
(в часах)
43
45
25
4. Рекомендуемая литература (основная и дополнительная)
а) основная литература:
1. Оленёв Н.Н. Печёнкин Р.В. Чернецов А.М. Параллельное
программирование в MATLAB и его приложения. – М.:
Вычислительный центр РАН им А.А. Дородницына, 2007. – 120 с.
http://www.ccas.ru/mmes/distcompbook.pdf
б) дополнительная литература:
2. Кривилев А. Основы компьютерной математики с использованием
системы MATLAB. М.: Лекс-Книга, 2005.
3. Коткин Г.Л. Компьютерное моделирование физических процессов
с использованием MATLAB : Учеб. пособие / Г.Л. Коткин, В.С.
Черкасский ; Новосиб. гос. ун-т, Физ. фак. — Новосибирск : НГУ,
2001 .— 173 с.
4. Поршнев С. Компьютерное моделирование физических процессов
в пакете MATLAB : учебное пособие : [для студентов вузов,
обучающихся по специальностям Математика, Информатика,
Физика] / С.В. Поршнев .— Изд. 2-е, испр. — Санкт-Петербург [и
др.]
:
Лань,
2011
.—
726
с.
URL:
http://e.lanbook.com/books/element.php?pl1_id=650
5. Введение в математическое моделирование : учебное пособие /
под ред. П.В. Трусов. - М. : Логос, 2004. - 439 с. - ISBN 5-94010272-7
;
То
же
[Электронный
ресурс].
URL:
http://biblioclub.ru/index.php?page=book&id=84691
6. Дьяконов, В.П. MATLAB 6/6.1/6.5 + Simulink 4/5 в математике и
моделировании: полное руководство пользователя / В.П.
Дьяконов. - М. : СОЛОН-ПРЕСС, 2008. - 566 с. : ил. - Библиогр. в
кн. - ISBN 5-93455-177-9 ; То же [Электронный ресурс]. - URL:
http://biblioclub.ru/index.php?page=book&id=271895
7. Столяров А.В. Оформление программного кода: методическое
пособие. – М.: МАКС Пресс, 2012. – 100 с. – Режим электронного
доступа: http://www.stolyarov.info/books/pdf/codestyle.pdf
5. Требования к представлению и оформлению результатов СРС
Вид самостоятельной
работы
Изучение разделов
дисциплины по учебной
литературе
Подготовка к
лабораторным занятиям
Требования к оформлению
Требования к
представлению
Требования отсутствуют
Устно отвечать на вопросы
Программный
код,
разрабатываемый
студентом,
должен
соответствовать
методическим рекомендациям
Защита каждой лабораторной
работы в форме демонстрации
преподавателю
работоспособности
26
Подготовка к контролю
текущих знаний по
дисциплине
Изучение разделов
дисциплины по учебной
литературе, не
освещаемых на лекциях
[7]
по
оформлению разработанных
параллельных
программного кода
программ
на
реальном
оборудовании.
Требования отсутствуют
Устно отвечать на вопросы
Требования отсутствуют
Устно отвечать на вопросы
6. Оценка выполнения СРС
Оценка выполнения СРС осуществляются на основе балльно-рейтинговой
системы, принятой в образовательной программе. В таблице приведено
максимальное количество баллов, которое может набрать студент за
лабораторные работы в течение семестра и диапазоны баллов,
соответствующие минимальному и максимальному количествам баллов.
№
п/п
Вид учебной
работы
(учебной
деятельности)
1. Лаб. работа №1
2. Лаб. работа №2
3. Лаб. работа №3
4. Лаб. работа №4
5. Лаб. работа №5
6. Лаб. работа №6
7. Лаб. работа №7
Итого по текущему
рейтингу:
Максимальное
количество
баллов
Диапазоны
баллов
Срок
представления и
защиты
(неделя
семестра)
6
12
12
8
16
14
12
80
3-6
6-12
6-12
4-8
8-16
7-14
6-12
40-80
2
6
8
10
12
14
16
Поскольку выполнение каждой лабораторной работы требует больше
времени, чем выделяется в рамках лабораторных часов по программе
дисциплины, отдельно работа студента на лабораторных работах в
терминальном классе и самостоятельная работа не оцениваются. Вместо
этого, оценивается результат выполнения лабораторной работы (задания)
целиком, который складывается из аудиторной и самостоятельной работы.
Правила приёма лабораторных работ:
1. В течение семестра необходимо представить и защитить 7
лабораторных работ в сроки, установленные учебным графиком (см.
таблицу).
27
2. К защите допускаются студенты, выполнившие лабораторные работы в
полном объеме (все задания согласно варианту).
3. На защите каждой лабораторной работы предлагается 3 вопроса (по
ходу защиты), связанных с выполнением практических заданий.
4. Максимальное количество баллов за лабораторную работу
выставляется, если студент полностью ответил на все вопросы, без
серьезных замечаний и недочетов.
5. Минимальное количество баллов выставляется, если студент ответил
на два вопроса из трёх, с серьезными замечаниями, недочетами.
6. Пересдача лабораторной работы назначается, если студент не
ориентируется в учебном материале, не может объяснить ход и
результаты выполнения работы. В случае пересдачи лабораторной
работы происходит потеря баллов (максимальное количество баллов
составляет 5, 7, 9, 10,12 или 14 в зависимости от вида работы).
7. В случае представления и защиты работ с опозданием от учебного
графика происходит потеря баллов (опоздание на 1 неделю – потеря 1
или 2 балла в зависимости от вида работы, опоздание на 2 недели –
потеря 2 или 3 балла, 3 недели и более – потеря 50% баллов от
максимально возможного).
28
Download