ТЕОРИЯ И ПРАКТИКА ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ НА ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ. ТЕХНОЛОГИЯ MPI

(24-32 часа)

Данный курс предназначен для освоения технологии MPI. Курс рассчитан примерно на 32 часа занятий и включает в себя введение в операционную систему UNIX, практические сведения о параллелизме и его использовании, а также подробное изучение технологии параллельного программирования MPI (версия стандарта MPI 1.1). Предполагается одновременное проведение практических занятий на высокопроизводительном параллельном компьютере (вычислительном кластере) с выполнением предложенных заданий.

  1. Введение в операционную систему UNIX. Кратко о параллелизме и его использовании. Вычислительные кластеры - архитектура, основные характеристики, использование.
    Практические занятия: вход в систему, освоение команд UNIX, написание, компиляция и отладка последовательных вариантов программ.
  2. Общая структура программы. Общие функции MPI. Прием/передача сообщений с блокировкой. Различные виды операторов Send.
    Практические занятия: определение базовых характеристик компьютера, написание, отладка и оптимизация первых параллельных программ.
  3. Прием/передача сообщений без блокировки. Различные виды операторов Wait и Test.
    Практические занятия: реализация различных коммуникационных схем с использованием изученных видов пересылок.
  4. Отложенные взаимодействия. Предотвращение тупиковых ситуаций, совмещенные прием и передача сообщений. Барьерная синхронизация.
    Практические занятия: сравнение эффективности различных видов коммуникаций, реализация первого параллельного варианта содержательной практической задачи.
  5. Коллективные взаимодействия процессов.
    Практические занятия: сравнение эффективности коллективных операций с их моделированием при помощи пересылок типа точка-точка, использование коллективных операций в содержательной практической задаче.
  6. Операции с группами процессов и коммуникаторами. Виртуальные топологии.
    Практические занятия: использование групп и коммуникаторов, использование виртуальной топологии в содержательной практической задаче.
  7. Производные типы данных. Упаковка данных.
    Практические занятия: задачи на пересылки разнотипных данных, исследование и оптимизация содержательной практической задачи, нахождение узких мест, получение результатов, обсуждение.

Литература:

  1. MPI: A Message-Passing Interface Standard (Version 1.1)
  2. В.В.Воеводин, Вл.В.Воеводин "Параллельные вычисления", БХВ-Петербург, 2002, 608 стр.
  3. А.С.Антонов "Введение в параллельные вычисления (методическое пособие)", изд-во Физического факультета МГУ, 2002, 70 стр.
  4. А.С.Антонов Параллельное программирование с использованием технологии MPI: Учебное пособие. -М.: Изд-во МГУ, 2004.-71 с.
  5. А.А. Букатов, В.Н. Дацюк, А.И. Жегуло. Программирование многопроцессорных вычислительных систем. Ростов-на-Дону. Издательство ООО "ЦВВР", 2003, 208с. (Многопроцессорные системы и параллельное программирование)
  6. Шпаковский Г.И., Серикова Н.В. Программирование для многопроцессорных систем в стандарте MPI: Пособие - Мн.: БГУ, 2002. -323 с. ISBN 985-445-727-3. (справка о публикации в формате PDF. Полный текст книги можно скачать на сайте авторов)
  7. С.А.Немнюгин, О.Л.Стесик "Параллельное программирование для многопроцессорных вычислительных систем", БХВ-Петербург, 2002, 400 стр.
  8. В.Д.Корнеев "Параллельное программирование в MPI", изд-во СО РАН, Новосибирск, 2000, 213 стр.


© Лаборатория Параллельных информационных технологий НИВЦ МГУ