int MPI_Wait(MPI_Request *request, MPI_Status *status) • request – имя запроса;
• status – статус объекта;
Запрос к MPI_Wait возвращает управление после того, как операция,
идентифицированная request, выполнилась. Это блокированная функция.
Если объект системы, указанный request, был первоначально создан
неблокированными посылающей или получающей функциями, то этот
объект освобождается функцией MPI_Wait, и request устанавливается в
MPI_REQUEST_NULL.
Статус объекта
содержит
информацию
относительно выполненной операции.
int MPI_Test(MPI_Request *request, int *flag, MPI_Status *status) • request – имя запроса;
• flag – true, если операция выполнилась, иначе false;
• status – статус объекта
Запрос к MPI_TEST возвращает flag = true, если операция,
идентифицированная request, выполнилась. В этом случае статус состояния содержит информацию относительно законченной операции.
Если объект системы, указанный request, был первоначально создан
неблокированными посылающей или получающей функциями, то этот
объект освобождается функцией MPI_TEST, и request устанавливается в
MPI_REQUEST_NULL.
Запрос возвращает flag = false, если операция не выполнилась. В
этом случае
значение
статуса
состояния
не
определено. Это
неблокированная функция [8].
2.4.3 Обмен сообщениями при помощи одной функции В MPI есть группа процедур, совмещающих функции приема и
передачи. Они достаточно часто применяются при программировании
"каскадных" или "линейных" схем, когда необходимо осуществлять обмен
20
однотипными данными между процессорами. Примером является
функция: