Методы и алгоритмы параллельного программирования

Вайс Юрий Андреевич

Портфолио преподавателя

Описание: Курс дает представление о моделировании и анализе параллельных вычислений, принципах разработки параллельных алгоритмов и программ, технологиях и системах разработки параллельных программ, параллельных численных алгоритмах. По окончании курса магистрант способен строить модель выполнения параллельных программ, оценивать эффективности параллельных вычислений, анализировать сложность вычислений и возможность распараллеливания разрабатываемых алгоритмов, оценивать основные параметры программ.

Количество кредитов: 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 с.