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


функция обратного вызова MPI_Grequest_query_function

MPI_Grequest_query_function — это заполнитель для имени функции, определяемой приложением.

Синтаксис

int MPI_Grequest_query_function(
  _In_opt_ void       *extra_state,
  _Out_    MPI_Status *status
);

Параметры

  • extra_state [в, необязательно]
    Дополнительное состояние.

  • status [out]
    Объект состояния MPI.

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

Все функции обратного вызова возвращают код ошибки. Код передается обратно и рассматривается в соответствии с кодом ошибки функцией MPI, которая вызвала функцию обратного вызова. Например, если возвращаются коды ошибок, код ошибки, возвращенный функцией обратного вызова, будет возвращен функцией MPI, которая вызвала функцию обратного вызова. В случае MPI_{Ожидание|Протестируйте любой вызов, который вызывает query_fn и free_fn, вызов MPI вернет код ошибки, возвращенный последним обратным вызовом, а именно free_fn. Если один или несколько запросов в вызове MPI_{Ожидание|Сбой теста}{some|all} и вызов MPI вернет MPI_ERR_IN_STATUS. В таком случае, если вызову MPI был передан массив состояний, то MPI вернет в каждом из состояний, соответствующих завершенному обобщенному запросу код ошибки, возвращенный соответствующим вызовом функции обратного вызова free_fn . Однако если функция MPI была передана MPI_STATUSES_IGNORE, то отдельные коды ошибок, возвращаемые каждой функцией обратного вызова, будут потеряны.

Fortran

    SUBROUTINE GREQUEST_QUERY_FUNCTION(EXTRA_STATE, STATUS, IERROR)
        INTEGER STATUS(MPI_STATUS_SIZE), IERROR
        INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE

Комментарии

Функция query_fn вычисляет состояние, которое должно быть возвращено для универсального запроса. Состояние также содержит сведения об успешной или неудачной отмене запроса (результат, возвращаемый MPI_Test_cancelled).

Обратный вызов query_fn вызывается MPI_{Wait|Вызов Test}{any|some|all} , который завершил обобщенный запрос, связанный с этим обратным вызовом. Функция обратного вызова также вызывается вызовами MPI_Request_get_status, если запрос завершен при вызове. В обоих случаях обратный вызов передает ссылку на соответствующую переменную состояния, передаваемую пользователем в вызов MPI; Состояние, заданное функцией обратного вызова, возвращается вызовом MPI. Если пользователь предоставил MPI_STATUS_IGNORE или MPI_STATUSES_IGNORE функции MPI, которая вызывает query_fn , то MPI передаст допустимый объект состояния в query_fn, и это состояние будет игнорироваться при возвращении функции обратного вызова. Обратите внимание, что query_fn вызывается только после вызова MPI_Grequest_complete в запросе. Он может вызываться несколько раз для одного обобщенного запроса, например, если пользователь вызывает MPI_Request_get_status несколько раз для этого запроса. Обратите внимание, что вызов MPI_{Ожидание|Test}{some|all} может вызвать несколько вызовов query_fn функций обратного вызова, по одному для каждого универсального запроса, завершенного вызовом MPI. Порядок этих вызовов не определяется MPI.

Требования

Продукт

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

Заголовок

Mpi.h; Mpif.h

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

Внешние функции MPI

MPI_Grequest_start

MPI_Waitall

MPI_Waitsome

MPI_Waitany

MPI_Testall

MPI_Testsome

MPI_Testany