- •Российская федерация министерство образования и науки
- •010500.68 Математическое обеспечение и администрирование информационных систем. Магистерская программа «Высокопроизводительные вычислительные системы» (очная форма обучения)
- •Российская федерация министерство образования и науки
- •010500.68 Математическое обеспечение и администрирование информационных систем. Магистерская программа «Высокопроизводительные вычислительные системы» (очная форма обучения)
- •Ответственный редактор: Захарова и.Г., д.П.Н., профессор.
- •Структура и трудоемкость дисциплины.
- •Тематический план.
- •Планирование самостоятельной работы студентов
- •Содержание дисциплины.
- •Разделы дисциплины и междисциплинарные связи с обеспечиваемыми (последующими) дисциплинами
- •Планы семинарских занятий.
- •Темы лабораторных работ.
- •Учебно-методическое обеспечение самостоятельной работы студентов. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины.
- •9.1. Примерные варианты контрольных работ:
- •9.2. Вопросы к экзамену
- •Образовательные технологии.
- •Учебно-методическое и информационное обеспечение дисциплины.
- •Технические средства и материально-техническое обеспечение дисциплины:
Разделы дисциплины и междисциплинарные связи с обеспечиваемыми (последующими) дисциплинами
№ п/п |
Наименование обеспечиваемых (последующих) дисциплин |
Темы дисциплины необходимые для изучения обеспечиваемых (последующих) дисциплин |
|||||||||||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
||
1 |
Методология научных исследований |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
2 |
Производственная практика |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
3 |
Научно-исследовательская работа |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
4 |
Выполнение ВКР |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
Содержание дисциплины.
Семестр 1
1. Введение в дисциплину. Принципы построения параллельных вычислительных систем. Примеры и классификация вычислительных систем. Типовые схемы коммуникации в многопроцессорных вычислительных системах.
2. Моделирование и анализ параллельных вычислений. Модели вычислений. Оценки трудоемкости параллельных алгоритмов. Коммуникационная трудоемкость параллельных алгоритмов. Показатели эффективности и анализ масштабируемости параллельных вычислений.
3. Основы технологии OpenMP. Модель «fork-join». Классификация переменных. Основные директивы и их опции. Распараллеливание по данным и по операциям. Решение проблемы синхронизации. Отладка программ.
4. Параллельные алгоритмы умножения матрицы на вектор. Принципы распараллеливания. Разделение данных. Разделение данных по строкам. Разделение данных по столбцам. Блочное разделение данных.
5. Параллельные алгоритмы матричного умножения. Принципы распараллеливания. Разделение данных. Ленточная схема разделения данных. Блочное разделение данных (алгоритмы Фокса и Кэннона).
6. Параллельные алгоритмы решения систем линейных алгебраических уравнений. Алгоритм Гаусса. Масштабирование и распределение подзадач. Метод сопряженных градиентов. Последовательный и параллельный алгоритмы.
7. Параллельное программирование в среде Microsoft Visual Studio. Многопоточная обработка. Параллелизм задач. Параллелизм данных. Класс Parallel; методы Parallel.Invoke; Parallel.For; Parallel.Foreach
8. Основы технологии MPI. Стандарт MPI. Модель MPI. Процессы. Обмен сообщениями. Группы и коммуникаторы. Типы сообщений. Функции передачи и приемы сообщений.
9. Стандартные и пользовательские типы данных. Создание пользовательских типов данных. Использование пользовательских типов данных при обмене сообщениями. Виртуальные топологии в MPI. Функции определения виртуальной топологии.
Семестр 2
1. Введение в технологию CUDA. Многоядерные вычислительные системы. Массивно-параллельные процессоры. Модель программирования CUDA.
2. Программирование GPU-систем. Потоки команд. Основы OpenCL. Организация потоков данных. Доступ к памяти.
3. Взаимодействие CUDA, OpenMP, MPI. Программирование для гибридных систем с графическими ускорителями. Реализации CUDA+(thread, OpenMP, MPI).
4. Принципы распараллеливания сортировки. Основные последовательные алгоритмы сортировки данных. Масштабирование параллельных вычислений.
5. Параллельные методы сортировки. Пузырьковая сортировка. Сортировка Шелла. Быстрая сортировка. Обобщенный алгоритм. Сортировка с использованием регулярного набора образцов.
6. Параллельные методы на графах. Задача поиска кратчайших путей. Задача нахождения минимального охватывающего дерева. Задача оптимального разделения графов.
7. Постановка и параллельные методы решения задачи Дирихле. Последовательные методы решения. Параллельные вычисления для системы с общей памятью (технология OpenMP). Параллельные вычисления для системы с распределенной памятью (технология MPI).
8. Постановка и проведение вычислительных экспериментов. Пошаговое и последовательное проведение вычислительных экспериментов. Выполнение серии вычислительных экспериментов. Модельные и реальные вычислительные эксперименты.
9. Сравнительный анализ моделей и технологий параллельного программирования. Критерии сравнения. Удобство программирования. Реализация типовых численных методов. Зависимость от коммуникационного оборудования.
