Средства параллельного программирования

Кафедра информатики и автоматизации научных исследований

Специальность: Прикладная информатика в области принятия решений

Преподаватель: Филимонов А.В.

Целями освоения дисциплины (модуля) «Средства параллельного программирования»  являются ознакомление  студентов  с методологией, принципами и средствами параллельного программирования на высокопроизводительных компьютерах.

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

В результате освоения дисциплины обучающийся должен:

Знать: основные средства программирования с помощью библиотеки MPI, знать принципы и основные проблемы реализации параллельных алгоритмов.

Уметь: настроить программную среду для построения и выполнения параллельных программ, реализовать параллельный алгоритм с помощью библиотеки MPI.

Владеть: основами анализа производительности и масштабируемости реализованных алгоритмов, навыками выявления «узких мест».

Содержание

1. ОБЩАЯ ОРГАНИЗАЦИЯ MPI
2. БАЗОВЫЕ ФУНКЦИИ MPI
3. КОММУНИКАЦИОННЫЕ ОПЕРАЦИИ ТИПА ТОЧКА-ТОЧКА
3.1. Обзор коммуникационных операций типа точка-точка
3.2. Блокирующие коммуникационные операции
3.3. Неблокирующие коммуникационные операции

4. КОЛЛЕКТИВНЫЕ ОПЕРАЦИИ
4.1. Обзор коллективных операций
4.2. Функции сбора блоков данных от всех процессов группы
4.3. Функции распределения блоков данных по всем процессам группы
4.4. Совмещенные коллективные операции
4.5. Глобальные вычислительные операции над распределенными данными

5. ПРОИЗВОДНЫЕ ТИПЫ ДАННЫХ И ПЕРЕДАЧА УПАКОВАННЫХ ДАННЫХ
5.1 Производные типы данных
5.2 Передача упакованных данных

6. РАБОТА С ГРУППАМИ И КОММУНИКАТОРАМИ
6.1. Определение основных понятий
6.2. Функции работы с группами
6.3. Функции работы с коммуникаторами

7. ТОПОЛОГИЯ ПРОЦЕССОВ
7.1. Основные понятия
7.2. Декартова топология

8. СРЕДСТВА ОТЛАДКИ И АНАЛИЗА ПРОИЗВОДИТЕЛЬНОСТИ.

Лабораторный практикум

  1. Настройка VisualStudio, создание макета MPI-приложения.
  2. Точечные передачи, блокирующие и неблокирующие передачи.
  3. Коллективные операции.
  4. Глобальные вычисления над распределенными данными.
  5. Практическое применение: параллельный алгоритм вычисления скалярного произведения, параллельный алгоритм умножения матрицы на вектор.
  6. Пользовательские типы, их упаковка и передача.
  7. Работа с группами и коммуникаторами. Виртуальные топологии.
  8. Отладка и анализ производительности параллельных программ.

Литература

а) основная литература:

  1. Богачов К.Ю. Основы параллельного программирования. -- М.: БИНОМ. Лаборатория знаний, 2003. -- 342 с
  2. http://www.ccas.ru/mmes/educat/lab04k/01/basics.html
  3. Баканов В.М., Осипов Д.В. Параллельное программирование в стандарте MPI: Учебно-методическое пособие по выполнению лабораторных работ. - М.: МГУПИ, 2006. - 78 c.
  4. http://www.mpi-forum.org/

б) дополнительная литература:

  1. http://habrahabr.ru/tag/параллельное%20программирование/
  2. http://parallel.ru/tech/tech_dev/MPI/

Отчетность

  • Семестр 2: Экз