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

Введение в суперкомпьютерное моделирование

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

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

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

Аннотация

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

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

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

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

  • Знает основные понятия: задержка и пропускная способность программы, эффективность распараллеливания и масштабируемость программы, законы Амдала и Густафсона-Барсиса. Умеет вычислять эффективную пропускную способность программы. Понимает отличия понятий 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. Знакомство с технологиями программирования гетерогенных систем: перенос вычислительных алгоритмов на специализированные ускорители.
Элементы контроля

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

  • неблокирующий контрольная работа
  • неблокирующий домашняя работа №1
  • неблокирующий домашняя работа №2
  • неблокирующий экзамен
Промежуточная аттестация

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

  • Промежуточная аттестация (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