MPI_Grequest_query_function回调函数

MPI_Grequest_query_function 是应用程序定义的函数名称的占位符。

语法

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

参数

  • extra_state [in, 可选]
    额外状态。

  • status [out]
    MPI 状态对象。

返回值

所有回调函数都返回错误代码。 调用回调函数的 MPI 函数将代码传回并根据需要处理错误代码。 例如,如果返回错误代码,则调用回调函数的 MPI 函数将返回回调函数返回的错误代码。 对于MPI_{Wait|测试}调用query_fnfree_fn的任何调用,MPI 调用将返回上一次回调返回的错误代码,即free_fn。 如果在调用 MPI_{ Wait|Test}{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导致调用query_fn的 MPI 函数,则 MPI 会将有效的状态对象传递给query_fn,并在返回回调函数时忽略此状态。 请注意,只有在对 请求调用MPI_Grequest_complete 后,才会调用 query_fn ;对于同一通用化请求,可能会多次调用它,例如,如果用户为此请求调用 MPI_Request_get_status 多次。 另请注意,对 MPI_{Wait| 的调用Test}{some|all} 可能会导致 多次调用query_fn 回调函数,每个由 MPI 调用完成的通用化请求调用一次。 MPI 未指定这些调用的顺序。

要求

产品

HPC Pack 2012 MS-MPI 可再发行程序包、HPC Pack 2008 R2 MS-MPI 可再发行程序包、HPC Pack 2008 MS-MPI 可再发行程序包或 HPC Pack 2008 客户端实用工具

标头

Mpi.h;Mpif.h

另请参阅

MPI 外部函数

MPI_Grequest_start

MPI_Waitall

MPI_Waitsome

MPI_Waitany

MPI_Testall

MPI_Testsome

MPI_Testany