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

Распределенные вычисления и параллельное программирование

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

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


Орехов Максим Александрович

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

Аннотация

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

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

  • Получение студентами знаний в области параллельных и распределенных вычислений
  • Получение навыков разработки, отладки и исследования производительности параллельных программ
Планируемые результаты обучения

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

  • Знание основных типов архитектур параллельных вычислений, средств разработки параллельных и распределенных приложений, понятий ускорения, эффективности и масштабируемости.
  • Знание понятий потока и процесса.
  • Владение библиотекой POSIX Threads, функциями для создания и взаимодействия потоков, понимание механизмов синхронизации: семафоров, мьютекса, условных переменных
  • Владение средствами многопоточного программирования в современном стандарте С++: класс thread, классы и методы для создания и синхронизации потоков, атомарные данные и модели констистентности памяти
  • Знание директивного многопоточного программирования на основе OpenMP.
  • Знание библиотеки MPI, концепции SPMD, понятий коммуникатора, средств управления коммуникаторами в MPIприложении, парных взаимодействий MPIпроцессов, синхронных и асинхронных взаимодействий, коллективных взаимодействий MPIпроцессов, системы типов в MPI-программах, базовых и производных типов, источников ошибок в MPIпрограммах, взаимных блокировок, недетерминизма
  • Знание устройства современных грид-систем, в том числе принципов организации вычислений на базе ПО BOINC, основных типов и принципов функционирования облачных систем.
Содержание учебной дисциплины

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

  • Средства разработки программ для многоядерных систем с общей памятью
    Понятия потока и процесса. Библиотека POSIX Threads, функции для создания и взаимодействия потоков. Синхронизация: семафоры, мьютексы, условные переменные. Средства многопоточного программирования в современном стандарте С++. Класс thread, классы и методы для создания и синхронизации потоков. Атомарные данные и модели констистентности памяти. Директивное многопоточное программирование на основе OpenMP.
  • Средства разработки программ для систем с распределенной памятью
    Библиотека MPI, концепция SPMD. Понятия коммуникатора, средства управления коммуникаторами в MPI-приложении. Парные взаимодействия MPI-процессов, синхронные и асинхронные взаимодействия. Коллективные взаимодействия MPI-процессов. Система типов в MPI-программах, базовые и производные типы. Источники ошибок в MPI-программах, взаимные блокировки, недетерминизм.
  • Распределенные и облачные системы
    Устройство современных грид-систем, в том числе принципы организации вычислений на базе ПО BOINC. Основные типы и принципы функционирования облачных систем.
  • Общие сведения о современных параллельных и распределенных вычислительных комплексах
    Введение в архитектуру микропроцессоров, функциональные устройства, ядра, иерархия памяти. Основные способы организации систем с общей памятью, подходы SMP, NUMA. Типовое устройство систем с распределенной памятью, вычислительные кластеры. Грид-системы и облачные инфраструктуры.
Элементы контроля

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

  • неблокирующий Работа на семинарах
  • неблокирующий Контрольная работа
  • неблокирующий Экзамен
    Экзамен проводится в устной форме (опрос по материалам курса). Экзамен проводится на платформе Zoom (https://www.zoom.us/). К экзамену необходимо подключиться согласно расписанию ответов, высланному преподавателем на корпоративные почты студентов накануне экзамена. Компьютер студента должен удовлетворять требованиям: наличие рабочей камеры и микрофона, поддержка Zoom. Для участия в экзамене студент обязан: поставить на аватар свою фотографию, явиться на экзамен согласно точному расписанию, при ответе включить камеру и микрофон. Во время экзамена студентам запрещено: выключать камеру, пользоваться конспектами и подсказками. Кратковременным нарушением связи во время экзамена считается нарушение связи менее минуты. Долговременным нарушением связи во время экзамена считается нарушение минута и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи подразумевает использование усложненных заданий.
  • неблокирующий Контрольно-измерительные материалы
Промежуточная аттестация

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

  • Промежуточная аттестация (4 модуль)
    0.25 * Контрольная работа + 0.25 * Работа на семинарах + 0.5 * Экзамен
Список литературы

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

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

  • Бабичев С. Л., Коньков К. А. - РАСПРЕДЕЛЕННЫЕ СИСТЕМЫ. Учебное пособие для вузов - М.:Издательство Юрайт - 2019 - 507с. - ISBN: 978-5-534-11380-8 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/raspredelennye-sistemy-445188
  • Гергель В.П. - Теория и практика параллельных вычислений - Национальный Открытый Университет "ИНТУИТ" - 2016 - 500с. - ISBN: 978-5-94774-645-7 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100527
  • Технология CUDA в примерах : введение в программирование графических процессоров, Сандерс, Дж., 2011
  • Энтони Уильямс - Параллельное программирование на C++ в действии. Практика разработки многопоточных программ - Издательство "ДМК Пресс" - 2012 - 672с. - ISBN: 978-5-94074-448-1 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/4813

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

  • Антонов А.С. - Параллельное программирование с использованием технологии MPI - Национальный Открытый Университет "ИНТУИТ" - 2016 - 83с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100359
  • Биллиг В.А. - Параллельные вычисления и многопоточное программирование - Национальный Открытый Университет "ИНТУИТ" - 2016 - 310с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100361
  • Качин К., Гуерру Р., Родригес Л. - Введение в надежное и безопасное распределенное программирование - Издательство "ДМК Пресс" - 2016 - 512с. - ISBN: 978-5-97060-369-7 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100904
  • Левин М.П. - Параллельное программирование с использованием OpenMP - Национальный Открытый Университет "ИНТУИТ" - 2016 - 133с. - ISBN: 978-5-94774-857-4 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100358
  • Топорков В.В. - Модели распределенных вычислений - Издательство "Физматлит" - 2011 - 320с. - ISBN: 5-9221-0495-0 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/2339