Бакалавриат
2020/2021
Введение в суперкомпьютерное моделирование
Статус:
Курс по выбору (Прикладная математика)
Направление:
01.03.04. Прикладная математика
Кто читает:
Департамент прикладной математики
Когда читается:
4-й курс, 2, 3 модуль
Формат изучения:
без онлайн-курса
Язык:
русский
Кредиты:
8
Контактные часы:
62
Программа дисциплины
Аннотация
Целями освоения дисциплины является ознакомление студентов с архитектурой и принципами работы современных суперкомпьютеров, технологиями параллельного программирования для систем с общей и распределенной памятью, особенностями использования суперкомпьютеров для решения широкого круга задач физики, химии и биологии методами атомистического моделирования.
Цель освоения дисциплины
- Ознакомление студентов с архитектурами суперкомпьютерных систем
- Ознакомление студентов с основами работы с суперкомпьютерами.
- Ознакомление студентов с основами написания программ для параллельных и распределенных вычислительных систем.
- Ознакомление с методами параллелизации простейших вычислительных задач.
Планируемые результаты обучения
- Знает основные понятия: задержка и пропускная способность программы, эффективность распараллеливания и масштабируемость программы, законы Амдала и Густафсона-Барсиса. Умеет вычислять эффективную пропускную способность программы. Понимает отличия понятий CPU-bound и bandwidth-bound программ.
- Знает ключи оптимизации для компилятора языка Си GCC. Знает понятия SIMD инструкций. Может объяснить разницу в производительности программ с регулярным и случайным доступом к памяти. Знает базовые концепции OpenMP. Умеет компилировать и запускать программу, написанную с применением OpenMP. Умеет писать простейшие параллельные циклы с OpenMP.
- Понимает отличия системы с распределенной памятью и общей памятью. Умеет применять библиотеку MPI в программах на языке Си. Умеет распараллеливать простейшие численные алгоритмы.
Содержание учебной дисциплины
- Общие концепции производительности и параллельной эффективности вычислительных системПонятие суперкомпьютера. Метрики производительности и списки Top500, HPCG Top500, Top50 СНГ. Примеры задач современной физики и инженерных проблем, решаемых с помощью суперкомпьютеров. Типичный набор программного обеспечения для суперкомпьютера. Очереди пользовательских задач. Синхронизация вычислений на многопроцессорных системах; интерконнект, пропускная способность, задержка передачи сообщения. Законы Амдала и Густафсона. Strong scaling и weak scaling. Модель Roofline оценки и оптимизации производительности. Обзор технологий гетерогенных и гибридных вычислений.
- Параллельное выполнение инструкций в компьютерах с общей памятью: конвейер, SIMD инструкции, многопоточность с OpenMPПредставление чисел в памяти компьютера. Операции с плавающей точкой, конвейеризация. SIMD вычисления. Ключи оптимизации компилятора языка Си. Автовекторизация и разворачивание циклов. Понятие систем с общей и распределенной памятью. Синхронизация вычислений на многопроцессорных системах. Многопоточные приложения в системах с общей памятью. Применение OpenMP в языке Си. Компиляция OpenMP программ. Синхронизация потоков. Критические секции, атомарные операции. Распараллеливание циклов. Примеры параллелизуемых и последовательных алгоритмов. Численное интегрирование функций. Метод прогонки и метод Гаусса для решения систем линейных уравнений. Параллельные алгоритмы для задач динамики частиц.
- Гетерогенные вычислительные системы. Программирование систем с распределенной памятью. Стандарт MPI.Концепция обмена сообщениями в системах с распределенной памятью. Компиляция и запуск MPI программ. Обмен сообщениями: двухточечные и коллективные обмены. Синхронизация процессов в MPI программах. Реализация отдельных параллельных алгоритмов для систем с распределенной памятью с использованием MPI. Знакомство с технологиями программирования гетерогенных систем: перенос вычислительных алгоритмов на специализированные ускорители.
Промежуточная аттестация
- Промежуточная аттестация (3 модуль)0.27 * домашняя работа №1 + 0.27 * домашняя работа №2 + 0.14 * контрольная работа + 0.32 * экзамен
Список литературы
Рекомендуемая основная литература
- Язык программирования Си, Керниган, Б., 2001
Рекомендуемая дополнительная литература
- Левин М.П. - Параллельное программирование с использованием OpenMP - Национальный Открытый Университет "ИНТУИТ" - 2016 - 133с. - ISBN: 978-5-94774-857-4 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100358
- Малявко А. А. - ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ НА ОСНОВЕ ТЕХНОЛОГИЙ OPENMP, MPI, CUDA 2-е изд., испр. и доп. Учебное пособие для академического бакалавриата - М.:Издательство Юрайт - 2019 - 129с. - ISBN: 978-5-534-11827-8 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/parallelnoe-programmirovanie-na-osnove-tehnologiy-openmp-mpi-cuda-446247
- Модели параллельного программирования: Практическое пособие / Федотов И.Е. - М.:СОЛОН-Пр., 2017. - 392 с.: 60x88 1/8. - (Библиотека профессионала) ISBN 978-5-91359-222-4