функция обратного вызова 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 |