43
Выходной
параметр
:
•
request
идентификатор
операции
.
Инициализация
неблокирующей
синхронной
передачи
данных
int MPI_Issend(void *buf, int count, MPI_Datatype datatype, int dest,
int tag, MPI_Comm comm, MPI_Request *request)
MPI_ISSEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERR)
Параметры
этой
подпрограммы
совпадают
с
параметрами
подпрограммы
MPI_Send
.
Неблокирующая
буферизованная
передача
сообщения
int MPI_Ibsend(void *buf, int count, MPI_Datatype datatype, int dest,
int tag, MPI_Comm comm, MPI_Request *request)
MPI_IBSEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERR)
Неблокирующая
передача
"
по
готовности
"
int MPI_Irsend(void* buf, int count, MPI_Datatype datatype, int dest,
int tag, MPI_Comm comm, MPI_request *request)
MPI_IRSEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERR)
Параметры
всех
подпрограмм
неблокирующей
передачи
совпадают
.
Инициализация
неблокирующего
приема
int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source,
int tag, MPI_Comm comm, MPI_Request *request)
MPI_IRECV(BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST, IERR)
Назначение
аргументов
здесь
такое
же
,
как
и
в
предыдущих
подпрограммах
,
за
исключением
того
,
что
указывается
ранг
не
адресата
,
а
источника
сообщения
(
source
).
Блокировка
работы
процесса
до
завершения
приема
или
передачи
сообщения
int MPI_Wait(MPI_Request *request, MPI_Status *status)
MPI_WAIT(REQUEST, STATUS, IERR)
Входной
параметр
:
•
request
идентификатор
операции
обмена
.
Выходной
параметр
:
•
status
статус
выполненной
операции
.
Значение
статуса
для
операции
передачи
сообщения
можно
получить
вызовом
подпрограммы
MPI_Test_cancelled
.
Можно
вызвать
MPI_Wait
с
пустым
или
неактивным
аргументом
request
.
В
этом
случае
операция
завершается
сразу
же
с
пустым
статусом
.