Методы и алгоритмы параллельного программирования
Описание: Курс дает представление о моделировании и анализе параллельных вычислений, принципах разработки параллельных алгоритмов и программ, технологиях и системах разработки параллельных программ, параллельных численных алгоритмах. По окончании курса магистрант способен строить модель выполнения параллельных программ, оценивать эффективности параллельных вычислений, анализировать сложность вычислений и возможность распараллеливания разрабатываемых алгоритмов, оценивать основные параметры программ.
Количество кредитов: 5
Пререквизиты:
- Современные среды и языки программирования
- Алгоритмы, структуры данных и программирование
Трудоемкость дисциплины:
Виды работ | часы |
---|---|
Лекции | 15 |
Практические работы | |
Лабораторные работы | 30 |
СРОП | 30 |
СРО | 75 |
Форма итогового контроля | экзамен |
Форма проведения итогового контроля |
Компонент: Компонент по выбору
Цикл: Профилирующие дисциплины
Цель
- Изучении математических моделей, методов и технологий параллельного программирования для многопроцессорных вычислительных систем (МВС) в объеме, достаточном для успешного начала работ в области параллельного программирования.
Задача
- Формирование у студентов теоретических знаний и практических навыков разработки алгоритмов и программ и их реализации на (МВС) (суперкомпьютерах).
Результат обучения: знание и понимание
- Методы параллельных вычислений для задач вычислительной математики.
- Основные подходы к разработке параллельных программ
Результат обучения: применение знаний и пониманий
- Строить модель выполнения параллельных программ.
- Применять общие схемы разработки параллельных программ для реализаций собственных алгоритмов.
Результат обучения: формирование суждений
- Анализировать сложность вычислений и возможность распараллеливания разрабатываемых алгоритмов.
- Оценивать основные параметры получаемых параллельных программ, таких как ускорение, эффективность и масштабируемость.
- Способность разрабатывать и анализировать концептуальные и теоретические модели решаемых научных проблем и задач.
Результат обучения: коммуникативные способности
- Развивать коммуникативные способности, в том числе владение минимум одним иностранным языком для работы с открытыми ресурсами интернет и навыки межличностной и групповой коммуникации для делового взаимодействия в рамках ИТ проектов и других видов деятельности.
Результат обучения: навыки обучения или способности к учебе
- Навык разработки параллельных программ для МВС с применением технологий MPI, OpenMP.
Методы преподавания
Модульно-блочные технологии. В основе модульный или циклический тип обучения, а также информационно-коммуникационный (в том числе дистанционные образовательные технологии). Ведущими формами обучения выступают лекции, а методами эвристический, программированный и объяснительно-иллюстративный. Основными средствами диагностики являются итоговые письменные работы и выполнение работ по пройденным темам и разделам.
Темы лекционных занятий
- Введение в параллельные вычисления
- Проблемы разработки параллельных приложений
- Работа с потоками
- Средства синхронизации
- Конкурентные коллекции
- Работа с задачами
- Шаблоны параллелизма Parallel Параллельные циклы Parallel
- Технология PLINQ Параллелизм PLINQ-запросов
- Планировщик задач Организация планировщика: глобальная очередь задач, локальные очереди рабочих потоков
- Типовые модели параллельных приложений Шаблон MapReduce
Основная литература
- Антонов А.С. Технологии параллельного программирования MPI и Open MP: Учебное пособие для вузов. – М.: Изд-во МГУ, 2012. – 344 с.
- Старченко А.В., Данилкин Е.А., и др. Практикум по методам параллельных вычислений: Учебник. – М.: Изд-во МГУ, 2010. – 200 с.
- Волосова А.В. Параллельные методы и алгоритмы [Электронный ресурс]: учебное пособие/ А.В. Волосова. ‒ М.: МАДИ, Электронные текстовые и графические данные (5,35 Мбайт). 2020. – 176 с.
- Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. – СПб.: БХВ – Петербург, 2002. - 608 с.
Дополнительная литература
- Якобовский М. В. Введение в параллельные методы решения задач: Учебное пособие / Предисл.: В. А. Садовничий. – М.: Издательство Московского университета, 2013. – 328 с., илл
- Боресков А.В., Харламов А.А. Параллельные вычисления на GPU. Архитектура и программная модель CUDA: Учеб. пособие. – М.: Изд. МГУ, 2012. – 336 с.
- Сандерс Дж., Кэндрот Э. Технология CUDA в примерах: введение в программирование графических процессоров. – М.: ДМК Пресс, 2013.– 232 с.
- Гергель В.П. Высокопроизводительные вычисления для многопроцессорных многоядерных систем: Учебник – М.: Изд-во МГУ, 2010. – 544 с
- Боресков А.В., Харламов А.А. Основы работы с технологией CUDA. – М.: ДМК Пресс, 2011. – 231 с.
- Воеводин В.В. Вычислительная математика и структура алгоритмов: Учебник. – М.: Изд-во МГУ, 2010. – 168 с.