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


функция MPI_Waitsome

Выполняет некоторые из нескольких невыполненных операций.

Синтаксис

int MPIAPI MPI_Waitsome(
        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)     *array_of_statuses
);

Параметры

  • incount
    Количество записей в параметре array_of_requests .

  • array_of_requests
    Массив MPI_Request дескрипторов невыполненных операций.

  • outcount [out]
    Количество завершенных запросов.

  • array_of_indices
    Массив индексов в array_of_requests завершенных операций. Array_of_requests индексируется от нуля в C и от единицы в Fortran.

  • array_of_statuses
    Массив объектов состояния для завершенных операций или MPI_STATUSES_IGNORE.

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

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

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

Fortran

    MPI_WAITSOME(INCOUNT, ARRAY_OF_REQUESTS, OUTCOUNT, ARRAY_OF_INDICES, ARRAY_OF_STATUSES, IERROR)
        INTEGER INCOUNT, ARRAY_OF_REQUESTS(*), OUTCOUNT, ARRAY_OF_INDICES(*),
        ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*), IERROR

Комментарии

Массив атрибутов находятся в диапазоне от 0 до числа — 1 для C и в диапазоне от 1 до счетчика для Fortran.

Запросы NULL игнорируются; Если все запросы имеют значение NULL, то подпрограмма возвращает значение с параметром outcount, равным MPI_UNDEFINED.

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

MPI_Waitsome предоставляет интерфейс, похожий на вызовы Unix "select" или "poll", и в реализации с высоким уровнем квалификации указывает все запросы, которые были завершены при вызове MPI_Waitsome . Однако MPI_Waitsome гарантирует выполнение хотя бы одного запроса; нет никакой гарантии, что все выполненные запросы будут возвращены или что записи в array_of_indices будут находиться в порядке увеличения. Кроме того, запросы, выполненные во время выполнения MPI_Waitsome , могут быть возвращены или не будут возвращены в зависимости от времени завершения сообщения.

Требования

Продукт

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

Заголовок

Mpi.h; Mpif.h

Библиотека

Msmpi.lib

DLL

Msmpi.dll

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

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