Параллельное программирование

ТРУДОЕМКОСТЬ ДИСЦИПЛИНЫ
Общая трудоемкость дисциплины составляет 3 ЗЕТ (108 час.).

ЦЕЛИ И ЗАДАЧИ ДИСЦИПЛИНЫ
Цель дисциплины состоит в изучении математических моделей, методов и технологий параллельного программирования для многопроцессорных вычислительных систем (МВС) в объеме, достаточном для успешного начала работ в области параллельного программирования. Излагаемый набор знаний и умений составляет теоретическую основу для методов разработки сложных программ и включают такие темы, как цели и задачи параллельной обработки данных, принципы построения параллельных вычислительных систем, моделирование и анализ параллельных вычислений, принципы разработки параллельных алгоритмов и программ, технологии и системы разработки параллельных программ, параллельные численные алгоритмы для решения типовых задач вычислительной математики. Изучение курса поддерживается расширенным лабораторным практикумом.
Основной задачей изучения дисциплины является формирование у студентов теоретических знаний и практических навыков разработки алгоритмов и программ и их реализации на (МВС) (суперкомпьютерах).

МЕСТО ДИСЦИПЛИНЫ В СТРУКТУРЕ ООП
«Параллельное программирование» относится к вариативной части дисциплин профессионального цикла по выбору, для ее освоения требуется предварительное изучение курсов «Программирование», «Информатика», «Операционные системы».

ТРЕБОВАНИЯ К УРОВНЮ ОСВОЕНИЯ ДИСЦИПЛИНЫ
Процесс изучения дисциплины направлен на формирование следующих общекультурных (ОК), профессиональных (ПК) и профессионально-специализированных компетенций (ПСК):

  1. осознает социальную значимость своей будущей профессии, обладает высокой мотивацией к выполнению профессиональной деятельности (ОК-8);
  2. осваивать методики использования программных средств для решения практических задач (ПК-2);
  3. разрабатывать компоненты программных комплексов и баз данных, использовать современные инструментальные средства и технологии программирования (ПК-5);
  4. обосновывать принимаемые проектные решения, осуществлять постановку и выполнять эксперименты по проверке их корректности и эффективности (ПК-6);
  5. оценивать качество построенной модели (ПСК-4).
В результате изучения дисциплины студент должен:

Знать:
  1. Методы параллельных вычислений для задач вычислительной математики (матричные вычисления, решение систем линейных уравнений, сортировка, обработка графов, уравнения в частных производных, многоэкстремальная оптимизация).
  2. Основные подходы к разработке параллельных программ.
Уметь:
  1. Строить модель выполнения параллельных программ.
  2. Оценивать эффективности параллельных вычислений.
  3. Анализировать сложность вычислений и возможность распараллеливания разрабатываемых алгоритмов.
  4. Применять общие схемы разработки параллельных программ для реализаций собственных алгоритмов.
  5. Оценивать основные параметры получаемых параллельных программ, таких как ускорение, эффективность и масштабируемость.
Владеть: основами разработки параллельных программ для МВС с применением технологий MPI, OpenMP, CUDA.

СОДЕРЖАНИЕ ДИСЦИПЛИНЫ. ОСНОВНЫЕ РАЗДЕЛЫ
Состояние и проблемы параллельных вычислений. Моделирование и анализ параллельных алгоритмов. Этапы разработки параллельных алгоритмов. Средства разработки параллельных программ. Интерфейс передачи сообщений MPI. Технология программирования OpenMP. Программирование МВС с графическими процессорами. Типовые параллельные алгоритмы.

ВИДЫ УЧЕБНОЙ РАБОТЫ
Лекции, лабораторные работы.

ФОРМА АТТЕСТАЦИИ ПО ДИСЦИПЛИНЕ
Изучение дисциплины заканчивается зачетом.