Билеты к экзамену по курсу «Основы параллельного программирования»
лектор: к. ф.м. н.
Многопроцессорные системы с общей и распределенной памятью. Процессы и треды: сходства и различия. Планирование процессов и тредов в многозадачной ОС. Библиотека MPI: общие сведения. Модель SPMD. Функции инициализации, нормального и аварийного завершения работы библиотеки. Функции определения номера и общего числа процессов в приложении. Точечные обмены в MPI. Стандартный и синхронный режим. Буферизация сообщений в MPI. Функции для работы с буфером. Вычисление необходимой длины буфера. Прием сообщения по шаблону. Модель управляющий-рабочие. Недетерминизм. Условие гонок. Отложенные операции. Функции инициализации и завершения операции. Коллективные взаимодействия. Функции MPI_Bcast, MPI_Gather, MPI_Scatter. Коллективные взаимодействия. Функции MPI_Reduce, MPI_Barrier. Понятие группы и коммуникатора. Функции для управления группами в MPI. Создание и освобождение коммуникатора. Функции MPI_Comm_create и MPI_Comm_split. Назначение системы типов в MPI. Базовые типы, MPI_ TYPE_VECTOR, MPI_ TYPE_HVECTOR, MPI_ TYPE_CONTIGUOUS. Типы MPI_ TYPE_INDEXED, MPI_ TYPE_HINDEXED, MPI_TYPE_STRCUT. Упаковка сообщений. Функции для запаковки и распаковки сообщений. Определение размера сообщения. Библиотека PVM. Сравнение с MPI – сходства и различия. Управление виртуальной машиной PVM. Запуск и завершение процессов параллельного приложения. Отправка сообщений в PVM. Точечные и коллективные обмены. Функции для запаковки сообщений. Прием сообщений в PVM. Функции для распаковки сообщений. Создание и завершение треда в библиотеке PTHREADS. Проблема недетерминизма. Условие гонок. Механизм семафоров в библиотеке PTHREADS. Механизм критических секций в PTHREADS. Основные компоненты среды OpenMP. Модель выполнения OpenMP-приложения. Роль транслятора при распараллеливании. Директива инициации параллельного выполнения (parallel) в OpenMP. Директивы распределения работы sectons и sinlge в OpenMP. Директива for распределения работы в OpenMP.


