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

Высокопроизводительные вычисления

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

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

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

Аннотация

Количество ядер в современных процессорах уже измеряется десятками, в графических ускорителях – тысячами, а в суперкомпьютерах – миллионами. Многоядерные вычислительные системы широко применяются в машинном обучении, науках о материалах, биоинформатике, автоматизации проектирования, вычислительной химии и физике. Эффективно использовать эту значительную вычислительную мощность – непростая задача, требующая применения современных подходов, составляющих основное содержание предлагаемого спецкурса. Курс состоит из шести разделов. Первая вводная часть курса посвящена таким базовым концепциям параллельных вычислений, а также обзору современного устройства процессоров, ускорителей, способов организации оперативной памяти и высокопроизводительных сетей передачи данных. В небольшой второй части курса изучаются векторные устройства микропроцессоров и способам разработки программ для них. Основное внимание уделено архитектуре и программной поддержке технологии AVX. В третьей части рассматриваются средства разработки многопоточных программ. На примере различных алгоритмов изучаются такие инструменты, как POSIX Threads, современные расширения C++ (стандарты 11,14,17,20) для параллельных вычислений. Четвертая часть посвящена архитектуре и средствам разработки программ для графических ускорителей (GPU). Основное внимание уделяется программному стеку CUDA. Современные высокоуровневые средства разработки многопоточных программ для центральных процессоров и ускорителей рассматриваются в пятом разделе. Изучаются инструменты OpenMP, OpenACC и OpenCL. В пятой, заключительной части, рассматриваются технологии разработки программ для наиболее мощных высокопроизводительных систем – вычислительных кластеров. Основное внимание уделено самому распространенному средству разработки программ для таких систем – библиотеке MPI, интеграции MPI и CUDA. Является дисциплиной по выбору.
Цель освоения дисциплины

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

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

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

  • Владеть базовыми средствами многопоточного программирования
  • Владеть высокоуровневыми инструментами многопоточного программирования
  • Владеть средствами разработки программ для систем с распределенной памятью
  • Знать архитектуру, принципы разработки программ и инструменты для программирования графических ускорителей
  • Знать определения и уметь вычислять базовые характеристики производительности параллельных алгоритмов
  • Знать основные типы высокопроизводительных архитектур
Содержание учебной дисциплины

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

  • Теоретические основы высокопроизводительных вычислений
  • Введение в архитектуру микропроцессоров
  • Базовые средства многопоточного программирования
  • Программирование графических ускорителей
  • Высокоуровневые средства многопоточного программирования
  • Средства разработки программ для систем с распределенной памятью
Элементы контроля

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

  • неблокирующий Лабораторная работа 1
  • неблокирующий Лабораторная работа 2
  • неблокирующий Лабораторная работа 3
  • неблокирующий Лабораторная работа 4
  • блокирующий Экзамен
Промежуточная аттестация

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

  • 2021/2022 учебный год 2 модуль
    0.125 * Лабораторная работа 2 + 0.125 * Лабораторная работа 1 + 0.125 * Лабораторная работа 4 + 0.125 * Лабораторная работа 3 + 0.5 * Экзамен
Список литературы

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

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

  • Petersen, W. P., & Arbenz, P. (2004). Introduction to Parallel Computing. Oxford: Oxford University Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=176951
  • Биллиг, В. А. Параллельные вычисления и многопоточное программирование : учебное пособие / В. А. Биллиг. — 2-е изд. — Москва : ИНТУИТ, 2016. — 310 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100361 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Модели параллельного программирования: Практическое пособие / Федотов И.Е. - М.:СОЛОН-Пр., 2017. - 392 с.: 60x88 1/8. - (Библиотека профессионала) ISBN 978-5-91359-222-4

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

  • Основы многопоточного и параллельного программирования: Учебное пособие / Карепова Е.Д. - Краснояр.:СФУ, 2016. - 356 с.: ISBN 978-5-7638-3385-0