ВУЗ:
Составители:
Рубрика:
- 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
- …
- следующая ›
- последняя »