Поделиться через


функция MSMPI_Waitsome_interruptible

Ожидает завершения хотя бы одной из операций, связанных с активными дескрипторами в списке, или пока вызов не будет прерван другим потоком, вызывающим MSMPI_Queuelock_acquire.

Синтаксис

int MPIAPI MSMPI_Waitsome_interruptible(
        int                                         incount,
        _Inout_count_(incount) MPI_Request          array_of_requests[],
  _Out_ int                                         *outcount,
        _Out_cap_post_count_(incount,*outcount) int array_of_indices[],
        _Out_cap_post_count_(incount,*outcount) int array_of_statuses[]
);

Параметры

  • incount
    Число запросов в массиве array_of_requests.

  • array_of_requests
    Массив дескрипторов запросов операций, для которых требуется дождаться завершения. Если дескриптор запроса был выделен неблокируемой функцией связи, он освобождается, а связанный дескриптор получает значение MPI_REQUEST_NULL.

  • outcount [out]
    Количество запросов, указанных в параметре array_of_requests , и количество элементов в массивах array_of_indices и array_of_statuses .

    Если array_of_requests не содержит активных дескрипторов, функция возвращается немедленно с параметром outcount , равным MPI_UNDEFINED.

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

  • array_of_indices
    Возвращает индексы в параметре array_of_requests завершенных операций. Индексы массива основаны на нулях в C и на основе одного в Fortran.

  • array_of_statuses
    Возвращает состояние завершенных операций. Элементы этого массива соответствуют элементам массива array_of_indices .

Возвращаемое значение

Возвращает MPI_SUCCESS об успешном выполнении. В противном случае возвращаемое значение является кодом ошибки.

В Fortran возвращаемое значение хранится в параметре IERROR .

Если функция возвращает ошибку, отличное от MPI_ERR_IN_STATUS, она не обновляет поля ошибок состояний в параметре array_of_statuses .

Комментарии

В многопоточной среде пользователи должны получить глобальную блокировку MPI Майкрософт с помощью функции MSMPI_Queuelock_acquire , прежде чем вызывать MSMPI_Waitsome_interruptible. Эта функция прерывается, когда другой поток вызывает функцию MSMPI_Queuelock_acquire для доступа к библиотеке MPI.

Эта функция является расширением стандарта.

Требования

Продукт

Распространяемый пакет HPC 2012 MS-MPI, пакет HPC 2008 R2 распространяемый пакет MS-MPI, пакет HPC 2008 MS-MPI распространяемый пакет или служебные программы клиента ПАКЕТА HPC 2008

Заголовок

Mpi.h

Библиотека

Msmpi.lib

DLL

Msmpi.dll

См. также раздел

Функции типа "точка — точка" MPI

MSMPI_Lock_queue

MSMPI_Queuelock_acquire

MSMPI_Queuelock_release

MPI_Waitsome