Технологии параллельной и распределенной обработки данных
Входные требования: Базовые навыки программирования на C/C++
Зачетные единицы: 5
Курс: Основной
Язык курса: Английский
Цели
По окончании курса студенты:
- Познакомятся с основными направлениями развития высокопроизводительных компьютеров и с основной классификацией многопроцессорных систем
- Смогут использовать базовые методы и модели параллельных вычислений
- Научатся применять инструменты параллельного программирования для систем с распределенной и общей памятью
- Научатся проектировать параллельные алгоритмы решения вычислительных задач
- Будут реализовывать параллельные программы для систем с общей и распределенной памятью
- Смогут анализировать ускорение и эффективность разработанных параллельных алгоритмов
Содержание
- Введение в теорию параллельных вычислений: Основные понятия и задачи параллельного программирования, классификация многопроцессорных вычислительных систем. Формальные модели вычислительных процессов для параллельных программ.
- Современные средства и технологии параллельного программирования: Языки параллельного программирования, библиотеки параллельного программирования.Принципы разработки параллельных алгоритмов и программ
- Принципы распараллеливания последовательных программ: Параллелизм в вычислительной математике. Зависимость по данным. Метод декомпозиции. Методы распараллеливания последовательных алгоритмов. Оценка эффективности и коммуникационной трудоемкости параллельных алгоритмов.
- Технологии разработки параллельных программ для систем с общей памятью: Многопоточное программирование в языке C#. Технология параллельного программирования OpenMP для систем с разделяемой памятью. Параллельные алгоритмы численного интегрирования функций.
- Технологии разработки параллельных программ для систем с распределенной памятью: Технология MPI. Основные понятия и определения. Принципы распараллеливания. Типы и режимы передачи сообщений. Технология MPI. Пересылка разнотипных данных. Управление группами и коммуникаторами. Виртуальные топологии, параллельные алгоритмы сортировки данных.
- Технологии разработки параллельных программ для графических процессоров: Технология CUDA. Программная модель CUDA. Основы CUDA host API. Типы памяти и иерархия памяти CUDA. Параллельные численные алгоритмы линейной алгебры.
Формат
Практические занятия
Оценка
Посещение практических занятий является обязательным. Для успешного завершения курса студентам необходимо выполнить все практические задания и выступить с докладом. Итоговый контроль по дисциплине осуществляется в форме экзамена. Итоговая оценка зависит от работы студента на протяжении всего курса.