Параллельное программирование с использованием OpenMP

В курсе изложены сведения о параллельном программировании с использованием OpenMP для современных параллельных высокопроизводительных вычислительных систем с общей памятью.
Для специалистов
Записаться
Объём

36 час.
Длительность

30 дней
Нагрузка

6 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Этот курс посвящен практическому применению стандарта OpenMP для распараллеливания вычислений. В материалах рассматриваются основные конструкции управления потоками, средства загрузки и синхронизации, а также дополнительные возможности технологии. Изучаются методы настройки, ускорения и отладки параллельных программ, а также инструменты автоматизированного распараллеливания кода. Курс адресован программистам и инженерам, занимающимся созданием масштабируемых приложений для архитектур с общей памятью.
Цели
  • Сформировать понимание принципов разработки параллельных программ с использованием OpenMP.
  • Развить умение применять основные конструкции синхронизации и управления потоками.
  • Помочь анализировать работу средств автоматизированного распараллеливания программ.
Чему я научусь?
  • Использовать базовые конструкции OpenMP для управления параллельными вычислениями.
  • Настраивать и ускорять параллельные программы на системах с общей памятью.
  • Применять методы отладки и синхронизации при разработке многопоточных приложений.

Авторы

Левин Михаил Петрович
Кандидат физико-математических наук, руководитель отдела теории вычислительных систем (Computer Science Group) в Московском исследовательском центре корпорации Samsung Electronics.
Чему я научусь?
  • Использовать базовые конструкции OpenMP для управления параллельными вычислениями.
  • Настраивать и ускорять параллельные программы на системах с общей памятью.
  • Применять методы отладки и синхронизации при разработке многопоточных приложений.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз.
1 Введение В настоящей лекции будут кратко рассмотрены основные типы современных параллельных вычислительных систем и средства параллельного программирования... В настоящей лекции будут кратко рассмотрены основные типы современных параллельных вычислительных систем и средства параллельного программирования для них. ещё
Введение тест для курса Параллельное программирование с использованием OpenMP 35 мин
2 Основные конструкции OpenMP Настоящая лекция посвящена изложению основ параллельного программирования с использованием OpenMP. В начале обсуждаются основные принципы программирования... Настоящая лекция посвящена изложению основ параллельного программирования с использованием OpenMP. В начале обсуждаются основные принципы программирования в OpenMP и рассматривается принципиальная схема программирования. Приводятся конкретные реализации управляющих директив OpenMP для программ, написанных на алгоритмических языках Fortran и C/C++. Перечисляются основные правила применения директив OpenMP, использующихся для описания данных и организации параллельных вычислений. Обсуждаются вопросы видимости данных и корректности доступа к данным. Рассматриваются методы распараллеливания циклов и контроля распределения работы между процессорами. Приводятся способы балансировки работы процессоров с помощью директив OpenMP, а также задания внешних переменных окружения с помощью функций OpenMP. ещё
Основные конструкции OpenMP тест для курса Параллельное программирование с использованием OpenMP 30 мин
3 Загрузка и синхронизация в OpenMP В настоящей лекции рассматривается загрузка, синхронизация и балансировка параллельных потоков в OpenMP.
Загрузка и синхронизация в OpenMP тест для курса Параллельное программирование с использованием OpenMP 30 мин
4 Дополнительные возможности OpenMP В этой лекции рассматриваются дополнительные возможности, которыми можно воспользоваться при написании программ с применением OpenMP. Первый... В этой лекции рассматриваются дополнительные возможности, которыми можно воспользоваться при написании программ с применением OpenMP. Первый раздел настоящей лекции посвящен рассмотрению вопросов задания переменных окружения с помощью функций библиотеки реального времени runtime OpenMP. Во втором разделе рассматриваются вопросы применения директивы threadprivate при организации передачи данных в программах, написанных с использованием OpenMP. В третьем разделе лекции приводится устаревшая конструкция передачи данных в директиве OpenMP paralleldo. Наконец, четвертый раздел настоящей лекции посвящен изучению вопросов блокировки в OpenMP. ещё
Дополнительные возможности OpenMP тест для курса Параллельное программирование с использованием OpenMP 30 мин
5 Отладка программ в OpenMP В этой лекции рассматривается ряд проблем, возникающих при отладке параллельных программ в OpenMP. Первый раздел настоящей... В этой лекции рассматривается ряд проблем, возникающих при отладке параллельных программ в OpenMP. Первый раздел настоящей лекции посвящен рассмотрению условий состязательности. Во втором разделе изложена проблема мертвой блокировки. И, наконец, в третьем разделе приведены средства автоматизированной отладки в OpenMP. ещё
Отладка программ в OpenMP тест для курса Параллельное программирование с использованием OpenMP 30 мин
6 Настройка и ускорение программ в OpenMP Настоящая лекция посвящена рассмотрению вопросов настройки и ускорения программ, разработанных с использованием OpenMP.
Настройка и ускорение программ в OpenMP тест для курса Параллельное программирование с использованием OpenMP 30 мин
7 Средства автоматизированного распараллеливания программ В этой лекции будут рассмотрены средства автоматизированного распараллеливания программ.
Средства автоматизированного распараллеливания программ тест для курса Параллельное программирование с использованием OpenMP 40 мин
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз.
Экзамен