Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Воеводин Вл11.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
258 Кб
Скачать
☆

Int mpi_Test( mpi_Request *request, int *flag, mpi_Status *status)

  • request - идентификатор асинхронного приема или передачи

  • OUT flag - признак завершенности операции обмена

  • OUT status - параметры сообщения

Проверка завершенности асинхронных процедур MPI_Isend или MPI_Irecv, ассоциированных с идентификатором request. В параметре flag возвращает значение 1, если соответствующая операция завершена, и значение 0 в противном случае. Если завершена процедура приема, то атрибуты и длину полученного сообщения можно определить обычным образом с помощью параметра status.

Int mpi_Testall( int count, mpi_Request *requests, int *flag, mpi_Status *statuses)

  • count - число идентификаторов 

  • requests - массив идентификаторов асинхронного приема или передачи

  • OUT flag - признак завершенности операций обмена 

  • OUT statuses - параметры сообщений 

В параметре flag возвращает значение 1, если все операции, ассоциированные с указанными идентификаторами, завершены (с указанием параметров сообщений в массиве statuses). В противном случае возвращается 0, а элементы массива statuses неопределены.

Int mpi_Testany(int count, mpi_Request *requests, int *index, int *flag, mpi_Status *status)

  • count - число идентификаторов

  • requests - массив идентификаторов асинхронного приема или передачи

  • OUT index - номер завершенной операции обмена

  • OUT flag - признак завершенности операции обмена

  • OUT status - параметры сообщения

Если к моменту вызова подпрограммы хотя бы одна из операций обмена завершилась, то в параметре flag возвращается значение 1, index содержит номер соответствующего элемента в массиве requests, а status - параметры сообщения.

Int mpi_Testsome( int incount, mpi_Request *requests, int *outcount, int *indexes, mpi_Status *statuses)

  • incount - число идентификаторов

  • requests - массив идентификаторов асинхронного приема или передачи

  • OUT outcount - число идентификаторов завершившихся операций обмена

  • OUT indexes - массив номеров завершившихся операции обмена

  • OUT statuses - параметры завершившихся операций 

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

Int mpi_Iprobe( int source, int msgtag, mpi_Comm comm, int *flag, mpi_Status *status)

  • source - номер процесса-отправителя или MPI_ANY_SOURCE

  • msgtag - идентификатор ожидаемого сообщения или MPI_ANY_TAG

  • comm - идентификатор группы

  • OUT flag - признак завершенности операции обмена

  • OUT status - параметры обнаруженного сообщения

Получение информации о поступлении и структуре ожидаемого сообщения без блокировки. В параметре flag возвращает значение 1, если сообщение с подходящими атрибутами уже может быть принято (в этом случае ее действие полностью аналогично MPI_Probe), и значение 0, если сообщения с указанными атрибутами еще нет.

Объединение запросов на взаимодействие

Процедуры данной группы позволяют снизить накладные расходы, возникающие в рамках одного процессора при обработке приема/передачи и перемещении необходимой информации между процессом и сетевым контроллером. Несколько запросов на прием и/или передачу могут объединяться вместе для того, чтобы далее их можно было бы запустить одной командой. Способ приема сообщения никак не зависит от способа его посылки: сообщение, отправленное с помощью объединения запросов либо обычным способом, может быть принято как обычным способом, так и с помощью объединения запросов.