Операции передачи данных

Основу MPI составляют операции передачи сообщений. Среди предусмотренных в составе MPI функций различаются парные (point-to-point) операции между двумя процессами и коллективные (collective) коммуникационные действия для одновременного взаимодействия нескольких процессов.

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

Понятие коммуникаторов

Процессы параллельной программы объединяются в группы.

Коммуникатор (по[Корнеев] переключатель каналов) определяется, как служебный объект с рядом атрибутов и правилами, которые управляют его созданием, использованием, разрушением. Данный объект служит для определения области связи, которая может использоваться для точечных или коллективных взаимодействий между процессорами.

По типу различают следующие коммуникаторы:

  • Интракоммуникаторы( intracommunicator ) - используются для связи процессов внутри группы заданной топологии, которая указывает положение процессов в группе
  • Интеркоммуникторы (intercommunicator) - используются для взаимодействия между двумя непересекающимися группами. При этом установленные атрибуты интеркоммуникатора состоят из двух групп. Никакая тополгия не связанна с интеркоммуникатором.

Парные операции передачи данных, как правило, выполняются для процессов, принадлежащих одному и тому же коммуникатору.

Коллективные операции применяются одновременно для всех процессов коммуникатора.

Таким образом, указание используемого коммуникатора является обязательным для операций передачи данных в MPI.

В ходе вычислений могут создаваться новые и удаляться существующие группы процессов и коммуникаторы. Один и тот же процесс может принадлежать разным группам и коммуникаторам. Все имеющиеся в параллельной программе процессы входят в состав создаваемого по умолчанию коммуникатора с идентификатором MPI_COMM_WORLD.

Типы данных

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: