• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

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

2019/2020
Учебный год
RUS
Обучение ведется на русском языке
4
Кредиты
Статус:
Курс обязательный
Когда читается:
3-й курс, 3, 4 модуль

Преподаватель

Программа дисциплины

Аннотация

Является дисциплиной базовой профильной части профессионального цикла. Данная дисциплина направлена на овладение навыками программирования параллельных и распределенных систем. Существенное внимание уделяется вопросам, связанным с освоением базовых знаний в области архитектуры современных многопроцессорных вычислительных систем, параллельной обработки информации, технологий организации параллельных вычислений на многопроцессорных вычислительных комплексах с распределенной или общей оперативной памятью В результате освоения дисциплины студент должен знать: - основные подходы к разработке параллельных программ - основные технологии и модели параллельного программирования. - методы создания параллельных программ для типичных задач многопоточного программирования уметь: создавать параллельные программы для вычислительных систем с распределенной, общей оперативной памятью; - проводить распараллеливание вычислительных алгоритмов; - строить модель выполнения параллельных программ; - оценивать эффективности параллельных вычислений;
Цель освоения дисциплины

Цель освоения дисциплины

  • Целью освоения дисциплины «Параллельное программирование» является формирование у студентов теоретических знаний и практических навыков программирования параллельных и распределенных систем. Существенное внимание уделяется вопросам, связанным с освоением базовых знаний в области архитектуры современных многопроцессорных вычислительных систем, параллельной обработки информации, технологий организации параллельных вычислений на многопроцессорных вычислительных комплексах с распределенной или общей оперативной памятью.
Результаты освоения дисциплины

Результаты освоения дисциплины

  • Знает принципы построения и исполнения параллельных приложений. Проектирует высокопроизводительн ые приложения с применением шаблонов параллельного программирования. Создаёт параллельные программы для вычислительных систем с распределенной, общей оперативной памятью.
  • Знает основные ошибки многопоточного программирования. Знает профилирование многопоточных приложений. Знает различные библиотеки для разработки многопоточных приложений на различных языках программирования. Правильно выбирает фреймворк и архитектуру для разработки таких приложений. Проводит статический анализ параллельного кода.
  • Знает алгоритмические подходы к уменьшению задержек при синхронизации на различных структурах данных. Использует средства асинхронной коммуникации приложений. Строит параллельные аналоги вычислительных алгоритмов.
  • Знает основные lock- free алгоритмы и структуры данных для различных задач параллельного программирования. Реализует алгоритмы. Разрабатывает собственные lock-free алгоритмы на основе имеющихся аналогов.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение. Создание потоков. Синхронизация. Атомарные снимки регистров
  • Характерные ошибки, профилирование, пулы потоков и шаблоны
  • Кластеры, сети Петри. Модели памяти, асинхронный ввод/вывод
  • Линеаризуемость, lock-free структуры данных
Элементы контроля

Элементы контроля

  • неблокирующий Created with Sketch. Домашнее задание 1
  • неблокирующий Created with Sketch. Домашнее задание 2
  • неблокирующий Created with Sketch. Домашнее задание 3
  • неблокирующий Created with Sketch. Домашнее задание 4
  • блокирующий Created with Sketch. Устный экзамен
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (4 модуль)
    0.1 * Домашнее задание 1 + 0.1 * Домашнее задание 2 + 0.1 * Домашнее задание 3 + 0.1 * Домашнее задание 4 + 0.6 * Устный экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • Herlihy, M., & Shavit, N. (2012). The Art of Multiprocessor Programming, Revised Reprint. Burlington: Morgan Kaufmann. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=460894

Рекомендуемая дополнительная литература

  • Deng, Y. (2012). Applied Parallel Computing. Singapore: World Scientific. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=545490