ВУЗ:
Составители:
Рубрика:
- 23 -
процессорный элемент, на котором выполняется процесс, выполнивший
MPI_Send.
Имеются следующие модификации процедуры передачи данных с блоки-
ровкой MPI_Send:
• MPI_Вsend - передача сообщения с буферизацией. Если прием по-
сылаемого сообщения еще не был инициализирован процессом-
получателем, то сообщение будет записано в специальный буфер, и
произойдет немедленный возврат из процедуры. Выполнение этой про-
цедуры никоим образом не зависит от соответствующего вызова проце-
дуры приема сообщения. Тем не менее процедура может вернуть
код ошибки, если места под буфер недостаточно (о выделении массива для
буферизации должен озаботиться пользователь).
• MPI_Ssend - передача сообщения с синхронизацией. Выход из этой проце-
дуры произойдет только тогда, когда прием посылаемого сообще-
ния будет инициализирован процессом-получателем. Таким образом,
завершение передачи с синхронизацией говорит не только о возможности
повторного использования буфера посылки, но и о гарантированном
достижении процессом-получателем точки приема сообщения в про-
грамме. Использование передачи сообщений с синхронизацией
может замедлить выполнение программы, но позволяет избежать
наличия в системе большого количества не принятых буферизован-
ных сообщений.
• MPI_Rsend - передача сообщения по готовности. Этой процедурой можно
пользоваться только в том случае, если процесс-получатель уже иницииро-
вал прием сообщения. В противном случае вызов процедуры является
ошибочным и результат ее выполнения не определен. Гарантировать
инициализацию приема сообщения перед вызовом процедуры
MPI_Rsend можно с помощью операций, осуществляющих явную
или неявную синхронизацию процессов (например, MPI_Barrier или
MPI_Ssend). Во многих реализациях процедура MPI_Rsend сокращает
протокол взаимодействия между отправителем и получателем,
уменьшая накладные расходы на организацию передачи данных.
В MPI не используются привычные для C типы данных (
int, char и др.),
вместо них удобно применять определенные для данной платформы констан-
ты
MPI_INT, MPI_CHAR и т.д. (см. табл.1).
Таблица 1.
— Предопределенные в MPI константы типов данных.
Константы MPI Соответствующий тип в C
MPI_INT signed int
MPI_UNSIGNED unsigned int
MPI_SHORT signed int
MPI_LONG signed long int
процессорный элемент, на котором выполняется процесс, выполнивший
MPI_Send.
Имеются следующие модификации процедуры передачи данных с блоки-
ровкой MPI_Send:
• MPI_Вsend - передача сообщения с буферизацией. Если прием по-
сылаемого сообщения еще не был инициализирован процессом-
получателем, то сообщение будет записано в специальный буфер, и
произойдет немедленный возврат из процедуры. Выполнение этой про-
цедуры никоим образом не зависит от соответствующего вызова проце-
дуры приема сообщения. Тем не менее процедура может вернуть
код ошибки, если места под буфер недостаточно (о выделении массива для
буферизации должен озаботиться пользователь).
• MPI_Ssend - передача сообщения с синхронизацией. Выход из этой проце-
дуры произойдет только тогда, когда прием посылаемого сообще-
ния будет инициализирован процессом-получателем. Таким образом,
завершение передачи с синхронизацией говорит не только о возможности
повторного использования буфера посылки, но и о гарантированном
достижении процессом-получателем точки приема сообщения в про-
грамме. Использование передачи сообщений с синхронизацией
может замедлить выполнение программы, но позволяет избежать
наличия в системе большого количества не принятых буферизован-
ных сообщений.
• MPI_Rsend - передача сообщения по готовности. Этой процедурой можно
пользоваться только в том случае, если процесс-получатель уже иницииро-
вал прием сообщения. В противном случае вызов процедуры является
ошибочным и результат ее выполнения не определен. Гарантировать
инициализацию приема сообщения перед вызовом процедуры
MPI_Rsend можно с помощью операций, осуществляющих явную
или неявную синхронизацию процессов (например, MPI_Barrier или
MPI_Ssend). Во многих реализациях процедура MPI_Rsend сокращает
протокол взаимодействия между отправителем и получателем,
уменьшая накладные расходы на организацию передачи данных.
В MPI не используются привычные для C типы данных (int, char и др.),
вместо них удобно применять определенные для данной платформы констан-
ты MPI_INT, MPI_CHAR и т.д. (см. табл.1).
Таблица 1.— Предопределенные в MPI константы типов данных.
Константы MPI Соответствующий тип в C
MPI_INT signed int
MPI_UNSIGNED unsigned int
MPI_SHORT signed int
MPI_LONG signed long int
- 23 -
Страницы
- « первая
- ‹ предыдущая
- …
- 21
- 22
- 23
- 24
- 25
- …
- следующая ›
- последняя »
