We use cookies in order to improve the quality and usability of the HSE website. More information about the use of cookies is available here, and the regulations on processing personal data can be found here. By continuing to use the site, you hereby confirm that you have been informed of the use of cookies by the HSE website and agree with our rules for processing personal data. You may disable cookies in your browser settings.

  • A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

High Performance Computing

2024/2025
Academic Year
RUS
Instruction in Russian
6
ECTS credits
Delivered at:
Department of Informatics
Course type:
Elective course
When:
1 year, 3, 4 module

Instructor


Akhtyamov, Pavel

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

Аннотация

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

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

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

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

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

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

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

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

  • блокирующий Экзамен
    Устный экзамен проводится в форме ответов на вопросы экзаменационного билета. Экзаменационный билет два вопроса из перечня вопросов к экзамену. На подготовку ответа выделяется 2,5 часа.
  • неблокирующий Домашнее задание
    Домашнее задание выдается студентам в одном варианте. Срок выполнения домашнего задания - 2 недели. Форма представления обучающимися домашнего задания - программа на выбранном языке программирования.
Промежуточная аттестация

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

  • 2024/2025 4th module
    0.3 * Домашнее задание + 0.3 * Домашнее задание + 0.4 * Экзамен
Список литературы

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

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

  • 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

Авторы

  • Солнцева Дарья Александровна