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

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

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

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

Аннотация

Современные научные исследования и инженерные разработки невозможны без вычислений. С одной стороны, высокая скорость и/или большой объем вычислений во многих случаях критически важны для решения конкретных задач. С другой стороны, современные компьютеры и суперкомпьютеры являются мощным инструментом для проведения соответствующих высокопроизводительных вычислений. При этом практическое использование суперкомпьютерных систем невозможно без глубокого понимания иерархии технологий, начиная с устройства элементной базы и заканчивая абстракциями параллельного программирования. В курсе будут рассказано о ключевых современных вычислительных технологиях и принципах эффективного использования современных высокопроизводительных систем. Для проведения практических занятий студентам предоставляется доступ к Суперкомпьютеру «Харизма» НИУ ВШЭ, входящему в Топ10 по России и странам СНГ.
Цель освоения дисциплины

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

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

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

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

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

  • Архитектура современных суперкомпьютеров
    Области применения суперкомпьютерных вычислений. Рейтинги Top500, HPCG и Green500. Особенности устройства вычислительного узла и высокоскоростной коммуникационной сети. Программы развития суперкомпьютеров в России и других странах.
  • Архитектуры современных процессоров и технологии многопоточных вычислений в системах с общей памятью
    Архитектура ЭВМ фон Неймана. Разновидности современных архитектур (x86, arm, Power, RISC-V, Эльбрус, Sunway). Предсказатель переходов в процессоре: его задачи, возможность его обнаружения в высокоуровневом коде, проблемы, связаные с этим механизмом. Устройство кэша процессора. Cache-aware и cache-oblivious алгоритмы, их отличия. Технологии posix threads и OpenMP.
  • Архитектуры графических ускорителей и технологии их программирования
    Особенности параллелизма на ГПУ: thread, warp, block, grid. Особенность работы ГПУ с ветвлением. Warp divergence. Организация вычислений на ГПУ в режиме offload. Технологии CUDA, OpenCL, HIP, SYCL.
  • Математические библиотеки для высокопроизводительных вычислений
    Стандарты библиотек матричных вычислений BLAS и LAPACK, область применимости, их содержание и взаимосвязь, примеры существующих реализаций. Библиотека Eigen. Быстрое преобразование Фурье: применение, алгоритм Кули-Тьюки, FFTW и другие библиотеки.
  • Высокоскоростные коммуникационные сети и параллельное программирование на основе технологии MPI
    Характеристики производительности ВКС. Варианты топологий, максимальный диаметр. Технология RDMA. Протоколы передачи сообщений в библиотеке MPI. Библиотека MPI как способ организации параллелизма между процессами посредством передачи сообщений. Операции точка-точка и коллективные операции. Моделирование коммуникационной задержки при передаче данных между процессами. Оптимизация коллективной операций MPI_Allreduce.
  • Системы хранения данных и параллельные файловые системы
    Иерархия типов памяти. Рост объема и скорости системы хранения данных на жестких дисках в суперкомпьютерных центрах. Характерные параметры систем ввода-вывода верхней десятки списка IO-500. Характеристики системы хранения данных. Примеры приоритетов для различных классов данных. Параллельные файловые системы: примеры, принципы хранения данных (программный и аппаратный уровень).
  • Системы совместной разработки программного обеспечения для высокопроизводительных вычислений
    Системы контроля версий. Организация открытых проектов, принципы ветвления и версионирования, CI/DI. Обеспечение качества кода и поиск ошибок. Генерация документации.
  • Технологии машинного обучения
    Три основных составляющих, связь с искусственным интеллектом, основные типы задач с примерами и популярные алгоритмы для них. Основные алгоритмы и задачи, пакеты, их особенности, профилировка, связь с высокопроизводительными вычислениями.
Элементы контроля

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

  • неблокирующий Домашнее задание 1
  • неблокирующий Домашнее задание 2
  • неблокирующий Домашнее задание 3
  • неблокирующий Тест по первой части курса
  • неблокирующий Тест по второй части курса
  • блокирующий Экзамен
Промежуточная аттестация

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

  • Промежуточная аттестация (2 модуль)
    0.14 * Домашнее задание 1 + 0.12 * Домашнее задание 2 + 0.14 * Домашнее задание 3 + 0.1 * Тест по второй части курса + 0.1 * Тест по первой части курса + 0.4 * Экзамен
Список литературы

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

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

  • Achilleas Pipinellis. (2018). GitHub Essentials : Unleash the Power of Collaborative Development Workflows Using GitHub, 2nd Edition: Vol. Second edition. Packt Publishing.
  • Chowdhury, F., Zhu, Y., Heer, T., Paredes, S., Moody, A., Goldstone, R., Mohror, K., & Yu, W. (2019). I/O Characterization and Performance Evaluation of BeeGFS for Deep Learning. Proceedings of the 48th International Conference on Parallel Processing ; ISBN 9781450362955. https://doi.org/10.1145/3337821.3337902
  • Lockwood, G., Lozinskiy, K., Gerhardt, L., Cheema, R., Hazen, D., & Wright, N. (2019). A Quantitative Approach to Architecting All-Flash Lustre File Systems.
  • Turner, A., Sloan-Murphy, D., Sivalingam, K., Richardson, H., & Kunkel, J. (2019). Analysis of parallel I/O use on the UK national supercomputing service, ARCHER using Cray LASSi and EPCC SAFE.
  • Антонов А.С. - Параллельное программирование с использованием технологии MPI - Национальный Открытый Университет "ИНТУИТ" - 2016 - 83с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100359
  • Воеводин В. Параллельные вычисления / В. Воеводин. - Санкт-Петербург : БХВ-Петербург, 2015. - 608 с. - ISBN 978-5-9775-1860-4. - URL: https://ibooks.ru/bookshelf/18522/reading (дата обращения: 12.10.2020). - Текст: электронный.
  • Жуматий С.А., Воеводин В.В. - Вычислительное дело и кластерные системы - Национальный Открытый Университет "ИНТУИТ" - 2016 - 138с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100723
  • Крупномасштабное машинное обучение вместе с Python : учитесь быстро создавать мощные модели машинного обучения и развертывать крупномасштабные приложения прогнозирования, Шарден, Б., 2018
  • Параллельные вычисления на GPU : архитектура и программная модель CUDA: учеб. пособие для вузов, Боресков, А. В., 2012
  • Современные языки и технологии параллельного программирования : учебник для вузов, Гергель, В. П., 2012

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

  • Abramson, D., Jin, C., Luong, J., & Carroll, J. (2020). A BeeGFS-Based Caching File System for Data-Intensive Parallel Computing. Springer International Publishing. https://doi.org/10.1007/978-3-030-48842-0_1
  • Ayguade, E., Chapman, B., Addison, C., Ren, Y., & van Waveren, M. (2003). OpenMP issues arising in the development of parallel BLAS and LAPACK libraries. Scientific Programming, 11(2), 95.
  • Braam, P. (2019). The Lustre Storage Architecture.
  • Gao, J., Zheng, F., Qi, F., Ding, Y., Li, H., Lu, H., He, W., Wei, H., Jin, L., Liu, X., Gong, D., Wang, F., Zheng, Y., Sun, H., Zhou, Z., Liu, Y., & You, H. (2021). Sunway supercomputer architecture towards exascale computing: analysis and practice. Science China Information Sciences ; Volume 64, Issue 4 ; ISSN 1674-733X 1869-1919. https://doi.org/10.1007/s11432-020-3104-7
  • Jha, S., Patke, A., Brandt, J., Gentile, A., Showerman, M., Roman, E., Kalbarczyk, Z. T., Kramer, W. T., & Iyer, R. K. (2019). A Study of Network Congestion in Two Supercomputing High-Speed Interconnects.
  • Li, A., Song, S. L., Chen, J., Li, J., Liu, X., Tallent, N., & Barker, K. (2019). Evaluating Modern GPU Interconnect: PCIe, NVLink, NV-SLI, NVSwitch and GPUDirect. https://doi.org/10.1109/TPDS.2019.2928289
  • Martin Köhler, & Jens Saak. (2020). FlexiBLAS - A BLAS and LAPACK wrapper library with runtime exchangeable backends. https://doi.org/10.5281/zenodo.3909214
  • Nikitenko, D., Shvets, P., & Voevodin, V. (2020). Why do users need to take care of their HPC applications efficiency? Lobachevskii Journal of Mathematics; Том 41, № 8 (2020): Special Issue “Supercomputing Applications, Algorithms and Software Tools.”
  • Pippig, M. (2012). PFFT - An Extension of FFTW to Massively Parallel Architectures.
  • Sarah Guthals, & Phil Haack. (2019). GitHub For Dummies. For Dummies.
  • Skibba, R. (2021). Japan’s Fugaku Supercomputer Crushes Competition, But Likely Not for Long. Engineering ; Volume 7, Issue 1, Page 6-7 ; ISSN 2095-8099. https://doi.org/10.1016/j.eng.2020.12.003