• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2023/2024

Распределенные вычисления

Статус: Курс обязательный (Прикладная математика и информатика)
Направление: 01.03.02. Прикладная математика и информатика
Когда читается: 4-й курс, 1, 2 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для всех кампусов НИУ ВШЭ
Преподаватели: Пеплин Федор Сергеевич
Язык: русский
Кредиты: 6
Контактные часы: 56

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

Аннотация

Курс направлен на формирование у студентов навыков создания параллельных программ, а также умения работы с распределенными вычислительными системами.Курс посвящен разработке параллельных программ для систем с общей памятью с использованием Pthreads, OpenMP, а также систем с распределенной памятью (MPI) и гетерогенных систем (CUDA).
Цель освоения дисциплины

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

  • Формирование навыков создания паралелльных программ для систем с общей и распределенной памятью с использованием API pthreads, OpenMP, CUDA и MPI
  • Получение практических навыков работы с файловой системов HDFS и создания программ в парадигме MapReduce
Планируемые результаты обучения

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

  • Классифицировать параллельные системы по используемой памяти и по количеству потоков инструкций и команд
  • Описывать аппаратную архитектуру параллельных систем
  • Оценивать производительность параллельных программ (ускорение, эффективность), характеризовать основные закономерности (закон Амдаля, масштабируемость)
  • Разрабатывать параллельные программы для систем с общей памятью с использованием pthreads и OpenMP
  • Использовать мьютексы и семафоры
  • Синхронизировать работу потоков с помощью семафоров и условных переменных
  • Выявлять false sharing, определять его влияние на производительность параллельных программ
  • Использовать блокировки чтения-записи
  • Писать потокобезопасный код
  • Использовать средства индивидуальной и коллективной коммуникации в MPI
  • Использовать производные типы данных в MPI-программах
  • Разрабатывать программы для графических процессоров с использованиеим CUDA
  • Использовать общую память и warp shuffle в CUDA-приложениях
Содержание учебной дисциплины

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

  • Общие сведения о параллельных и распределенных вычислительных системах
  • Средства разработки программ для многоядерных систем с общей памятью
  • Разработка программ для систем с распределенной памятью
  • Средства разработки гетерогенных систем
Элементы контроля

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

  • неблокирующий Численное решение дифференциальных уравнений
  • неблокирующий Умножение векторов и матриц
  • неблокирующий Прямые и итерационные методы решения СЛАУ
  • неблокирующий Итоговый тест
Промежуточная аттестация

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

  • 2023/2024 учебный год 2 модуль
    0.3 * Итоговый тест + 0.233 * Прямые и итерационные методы решения СЛАУ + 0.233 * Умножение векторов и матриц + 0.234 * Численное решение дифференциальных уравнений
Список литературы

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

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

  • Архитектура компьютера, Таненбаум, Э., 2014
  • Параллельное программирование на современном C++ : что каждый профессионал должен знать о параллельном программировании, Гримм, Р., 2022
  • Параллельное программирование с использованием OpenMP : учеб. пособие для вузов, Левин, М. П., 2012
  • Параллельные вычисления на GPU : архитектура и программная модель CUDA: учеб. пособие для вузов, Боресков, А. В., 2012
  • Современные языки и технологии параллельного программирования : учебник для вузов, Гергель, В. П., 2012
  • Современные языки и технологии параллельного программирования : учебник, Гергель В.П., Садовничий В.А., 2012
  • Теория и практика параллельных вычислений : учебное пособие, Гергель, В. П., 2007
  • Технологии параллельного программирования MPI и OpenMP : учеб. пособие для вузов, Антонов, А. С., 2012
  • Технология CUDA в примерах : введение в программирование графических процессоров, Сандерс, Дж., 2011

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

  • Программирование GPU при помощи Python и CUDA : исследуйте высокопроизводительные параллельные вычисления с помощью CUDA, Тоуманен, Б., 2020

Авторы

  • Пеплин Федор Сергеевич