Технологии параллельной и распределенной обработки данных

Входные требования: Базовые навыки программирования на C/C++

Зачетные единицы: 5

Курс: Основной

Язык курса: Английский

Цели

По окончании курса студенты:

  • Познакомятся с основными направлениями развития высокопроизводительных компьютеров и с основной классификацией многопроцессорных систем 
  • Смогут использовать базовые методы и модели параллельных вычислений
  • Научатся применять инструменты параллельного программирования для систем с распределенной и общей памятью
  • Научатся проектировать параллельные алгоритмы решения вычислительных задач
  • Будут реализовывать параллельные программы для систем с общей и распределенной памятью
  • Смогут анализировать ускорение и эффективность разработанных параллельных алгоритмов

Содержание

  • Введение в теорию параллельных вычислений: Основные понятия и задачи параллельного программирования, классификация многопроцессорных вычислительных систем. Формальные модели вычислительных процессов для параллельных программ.
  • Современные средства и технологии параллельного программирования: Языки параллельного программирования, библиотеки параллельного программирования.Принципы разработки параллельных алгоритмов и программ
  • Принципы распараллеливания последовательных программ: Параллелизм в вычислительной математике. Зависимость по данным. Метод декомпозиции. Методы распараллеливания последовательных алгоритмов. Оценка эффективности и коммуникационной трудоемкости параллельных алгоритмов.
  • Технологии разработки параллельных программ для систем с общей памятью: Многопоточное программирование в языке C#. Технология параллельного программирования OpenMP для систем с разделяемой памятью. Параллельные алгоритмы численного интегрирования функций.
  • Технологии разработки параллельных программ для систем с распределенной памятью: Технология MPI. Основные понятия и определения. Принципы распараллеливания. Типы и режимы передачи сообщений. Технология MPI. Пересылка разнотипных данных. Управление группами и коммуникаторами. Виртуальные топологии, параллельные алгоритмы сортировки данных.
  • Технологии разработки параллельных программ для графических процессоров: Технология CUDA. Программная модель CUDA. Основы CUDA host API. Типы памяти и иерархия памяти CUDA. Параллельные численные алгоритмы линейной алгебры.

Формат

Практические занятия

Оценка

Посещение практических занятий является обязательным. Для успешного завершения курса студентам необходимо выполнить все практические задания и выступить с докладом. Итоговый контроль по дисциплине осуществляется в форме экзамена. Итоговая оценка зависит от работы студента на протяжении всего курса.