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

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

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

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


Калишенко Евгений Леонидович

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

Аннотация

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

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

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

Планируемые результаты обучения

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

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

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

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

  • неблокирующий Домашнее задание 1
  • неблокирующий Домашнее задание 2
  • неблокирующий Домашнее задание 3
  • неблокирующий Домашнее задание 4
  • блокирующий Устный экзамен
    Экзамен проводится в письменной форме с использованием синхронного прокторинга и состоит из ответов на два теоретических вопроса. Экзамен проводится на платформе Moodle (https://et.hse.ru), прокторинг на платформе Экзамус (hse.student.examus.net). К экзамену необходимо подключиться за 15 минут. На платформе Экзамус доступно тестирование системы. Компьютер студента должен удовлетворять следующим требованиям: https://elearning.hse.ru/data/2020/05/07/1544135594/Технические%20требования%20к%20ПК%20студента.pdf) Для участия в экзамене студент обязан: заранее зайти на платформу прокторинга, провести тест системы, включить камеру и микрофон, подтвердить личность. Время выполнения задания два часа. Время начала экзамена 11:00, завершение в 13:00. Во время выполнения студент записывает свой ответ на чистом листе бумаги, после фотографирует и высылает решение фотографию на электронную почту преподавателя. На отсылку решения дается 5 минут по завершении экзамена. Во время экзамена студентам запрещено: общаться (в социальных сетях, с людьми в комнате), списывать, использовать любые материалы. Во время экзамена студентам разрешено иметь при себе ручку и чистые листы бумаги, во время отправки решений разрешается использовать мобильный телефон или сканер. Кратковременным нарушением связи во время экзамена считается прерывание связи до 5 минут, если после этого студенту удается вернуться в ту же сессию работы с Экзамус. Долговременным нарушением связи во время экзамена считается прерывание связи 5 минут и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи аналогична процедуре сдачи.
Промежуточная аттестация

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

  • Промежуточная аттестация (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