Параллельная обработка данных


Технологии параллельного программирования - часть 5


Прием сообщения, аналогичный MPI_Recv, однако возврат из подпрограммы происходит сразу после инициализации процесса приема без ожидания получения сообщения в буфере buf. Окончание процесса приема можно определить с помощью параметра request и процедур MPI_Wait и MPI_Test.

int MPI_Wait( MPI_Request *request, MPI_Status *status)

  • request - идентификатор асинхронного приема или передачи
  • OUT status - параметры сообщения

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

int MPI_Waitall( int count, MPI_Request *requests, MPI_Status *statuses)

  • count - число идентификаторов
  • requests - массив идентификаторов асинхронного приема или передачи
  • OUT statuses - параметры сообщений

Выполнение процесса блокируется до тех пор, пока все операции обмена, ассоциированные с указанными идентификаторами, не будут завершены. Если во время одной или нескольких операций обмена возникли ошибки, то поле ошибки в элементах массива statuses будет установлено в соответствующее значение.

int MPI_Waitany( int count, MPI_Request *requests, int *index, MPI_Status *status)

  • count - число идентификаторов
  • requests - массив идентификаторов асинхронного приема или передачи
  • OUT index - номер завершенной операции обмена
  • OUT status - параметры сообщений

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

int MPI_Waitsome( int incount, MPI_Request *requests, int *outcount, int *indexes, MPI_Status *statuses)

  • incount - число идентификаторов
  • requests - массив идентификаторов асинхронного приема или передачи
  • OUT outcount - число идентификаторов завершившихся операций обмена
  • OUT indexes - массив номеров завершившихся операции обмена
  • OUT statuses - параметры завершившихся сообщений




Начало  Назад  Вперед



Книжный магазин