10
Для выполнения парных операций
могут использоваться разные
режимы передачи, среди которых синхронный, блокирующий и др.
Процессы параллельной программы объединяются в группы. Другим
важным понятием MPI, описывающим набор процессов, является понятие
коммуникатора. Под коммуникатором в MPI понимается специально
создаваемый служебный объект, который объединяет в своем составе
группу процессов и ряд дополнительных параметров (контекст),
используемых при выполнении операций передачи данных.
Парные операции передачи данных выполняются только для
процессов, принадлежащих одному и тому же коммуникатору.
Коллективные операции применяются одновременно
для всех процессов
одного
коммуникатора.
Как
результат,
указание
используемого
коммуникатора является обязательным для операций передачи данных в
MPI.
В ходе вычислений могут создаваться новые и удаляться
существующие группы процессов и коммуникаторы. Один и тот же
процесс может принадлежать разным группам и коммуникаторам. Все
имеющиеся в параллельной программе процессы входят в состав
конструируемого по умолчанию коммуникатора с идентификатором
MPI_COMM_WORLD.
При выполнении операций передачи
сообщений для указания
передаваемых или получаемых данных в функциях MPI необходимо
указывать тип пересылаемых данных. MPI содержит большой набор
базовых типов данных, во многом совпадающих с типами данных в
алгоритмических языках C и Fortran. Кроме
того, в MPI имеются
возможности создания новых производных типов данных для более
точного и краткого описания содержимого пересылаемых сообщений.
Итак, если сформулировать коротко, MPI – это библиотека функций,
обеспечивающая взаимодействие параллельных процессов с помощью
механизма передачи сообщений. Это библиотека, состоящая примерно из
130 функций, в число которых входят:
Функции инициализации и закрытия MPI-процессов;
Функции, реализующие парные операции;
Функции, реализующие коллективные операции;
Функции
для
работы
с
группами
процессов
и
коммуникаторами;
Функции для работы со структурами данных;
Функции формирования топологии процессов.
Изучение MPI начнем с рассмотрения базового набора функций,
образующих
минимально полный набор, достаточный для написания
простейших программ.