Математическое обеспечение высокопроизводительных вычислений
Название спецкурса на английском языке
Mathematical support for high-performance computing
Пререквизиты
Отсутствуют
Целевая аудитория
3-6 курс, магистранты
Подразделение
[Кафедра вычислительной математики]
Семестр
Весна
Тип спецкурса
Спецкурс по выбору студента
Учебный год
2025/26
Список тем
Введение в предмет «Высокопроизводительные вычисления» (HPC). Вычислительное ядро программы и модель вычислительной системы.
Основные пути повышения производительности программ. Эквивалентные преобразования программ. Граф потока данных (DataFlow).
Принципы алгоритмической и низкоуровневой оптимизации базовых вычислительных операций. Быстрые вычисления как наука
Анализ производительности программного обеспечения путем изучения машинного кода. Профилирование программного обеспечения.
Статическое и динамическое распараллеливание программ. Масштабируемость программ и гиперлинейное ускорение.
Физический и логический параллелизм. Процессы, потоки, "тасклеты" и прочие абстракции в языках программирования.
Организация обмена данными между процессами. Общая память и MPI. Активные сообщения. Latency hiding.
Вопросы синхронизации счета. Гонки и взаимные блокировки. Атомарные операции. Транзакционная память.
Особенности распределенных вычислений. Асинхронный ввод/вывод. Облачные вычислительные платформы и GRID-системы.
Принципы эффективного использования кеш-памяти в многопоточных программах. Many-core процессоры и VLIW-архитектуры.
Векторизация вычислений и использование SIMD-ускорителей для параллельных вычислений. Расширения AVX2 и FMA.
Технологии CUDA и OpenCL: общие черты и различия технологий. Архитектурные особенности графпроцессоров.
Динамический параллелизм в технологиях CUDA и OpenCL. Параллельные диалекты языков C/C++. Языки Charm++ и T++.
Гибридные вычислительные системы и поддержка выгрузки (offloading) вычислений в специализированных компиляторах.
Специализация программ, частичные вычисления и супероптимизация. Мемоизация (табулирование) результатов вычислений.
Реконфигурируемые вычислительные системы на основе программируемых (FPGA) и заказных (ASIC) микросхем.
Обеспечение отказоустойчивости счета на больших суперЭВМ. Операционный недетерминизм и отказоустойчивые алгоритмы.
Основные пути повышения производительности программ. Эквивалентные преобразования программ. Граф потока данных (DataFlow).
Принципы алгоритмической и низкоуровневой оптимизации базовых вычислительных операций. Быстрые вычисления как наука
Анализ производительности программного обеспечения путем изучения машинного кода. Профилирование программного обеспечения.
Статическое и динамическое распараллеливание программ. Масштабируемость программ и гиперлинейное ускорение.
Физический и логический параллелизм. Процессы, потоки, "тасклеты" и прочие абстракции в языках программирования.
Организация обмена данными между процессами. Общая память и MPI. Активные сообщения. Latency hiding.
Вопросы синхронизации счета. Гонки и взаимные блокировки. Атомарные операции. Транзакционная память.
Особенности распределенных вычислений. Асинхронный ввод/вывод. Облачные вычислительные платформы и GRID-системы.
Принципы эффективного использования кеш-памяти в многопоточных программах. Many-core процессоры и VLIW-архитектуры.
Векторизация вычислений и использование SIMD-ускорителей для параллельных вычислений. Расширения AVX2 и FMA.
Технологии CUDA и OpenCL: общие черты и различия технологий. Архитектурные особенности графпроцессоров.
Динамический параллелизм в технологиях CUDA и OpenCL. Параллельные диалекты языков C/C++. Языки Charm++ и T++.
Гибридные вычислительные системы и поддержка выгрузки (offloading) вычислений в специализированных компиляторах.
Специализация программ, частичные вычисления и супероптимизация. Мемоизация (табулирование) результатов вычислений.
Реконфигурируемые вычислительные системы на основе программируемых (FPGA) и заказных (ASIC) микросхем.
Обеспечение отказоустойчивости счета на больших суперЭВМ. Операционный недетерминизм и отказоустойчивые алгоритмы.
Список источников
К.Ю. Богачев, Основы параллельного программирования, Бином, 2024
D.Kaeli, P.Mistry, D.Schaa, D.P.Zhang, Heterogeneous Computing with OpenCL 2.0, Third Edition, AMD, Elsevier Inc., 2015
А.В. Боресков и др. Параллельные вычисления на GPU. Архитектура и программная модель CUDA: Учебное пособие. Изд-во МГУ, 2015
В.В. Воеводин. Параллельные вычисления: учеб. пособие для вузов. БХВ-Петербург, 2002
В.П. Гергель. Высокопроизводительные вычисления для многопроцессорных многоядерных систем: учеб. для вузов. - M.: Изд-во МГУ, 2010
Р. Гримм, Параллельное программирование на современном языке C++, ДМК Пресс, 2022
Э.Д. Уильямс, Параллельное программирование на С++ в действии. Практика разработки многопоточных программ, ДМК Пресс, 2012
D.Kaeli, P.Mistry, D.Schaa, D.P.Zhang, Heterogeneous Computing with OpenCL 2.0, Third Edition, AMD, Elsevier Inc., 2015
А.В. Боресков и др. Параллельные вычисления на GPU. Архитектура и программная модель CUDA: Учебное пособие. Изд-во МГУ, 2015
В.В. Воеводин. Параллельные вычисления: учеб. пособие для вузов. БХВ-Петербург, 2002
В.П. Гергель. Высокопроизводительные вычисления для многопроцессорных многоядерных систем: учеб. для вузов. - M.: Изд-во МГУ, 2010
Р. Гримм, Параллельное программирование на современном языке C++, ДМК Пресс, 2022
Э.Д. Уильямс, Параллельное программирование на С++ в действии. Практика разработки многопоточных программ, ДМК Пресс, 2012
Дополнительная информация
Курс посвящен рассмотрению архитектур современных и перспективных высокопроизводительных систем,
общей методологии построения параллельных, распределенных и отказоустойчивых программ, способам
масштабирования программ, современным стандартам для программирования ускорителей OpenCL и CUDA,
а также подходам к преобразованию, специализации и низкоуровневой оптимизации программного кода.
День недели
по согласованию
Время
по согласованию
Аудитория
Ещё не назначена
Аудитория первого занятия
Ещё не назначена
Статус курса
Запись открыта
Форма записи на курс
Заполнение формы записи на курс доступно только студентам. Для записи на курс авторизуйтесь, пожалуйста, в студенческом аккаунте.