MPI_Grequest_free_function回调函数
MPI_Grequest_free_function 是应用程序定义的函数名称的占位符。
语法
int MPI_Grequest_free_function(
_In_opt_ void *extra_state
);
参数
-
extra_state [in, 可选]
额外状态。
返回值
所有回调函数都返回错误代码。 调用回调函数的 MPI 函数将代码传回并根据需要处理错误代码。 例如,如果返回错误代码,则调用回调函数的 MPI 函数将返回回调函数返回的错误代码。 对于同时调用query_fn和free_fn的MPI_Waitany和MPI_Testany调用,MPI 调用将返回上一次回调返回的错误代码,即free_fn。 如果调用 MPI_Waitsome、 MPI_Waitall、 MPI_Testsome或 MPI_Testall 中的一个或多个请求失败,则 MPI 调用将返回 MPI_ERR_IN_STATUS。 在这种情况下,如果向 MPI 调用传递了状态数组,则 MPI 将在与已完成的通用化请求对应的每个状态中返回其 free_fn 回调函数的相应调用所返回的错误代码。 但是,如果 MPI 函数MPI_STATUSES_IGNORE传递,则每个回调函数返回的单个错误代码将丢失。
Fortran
SUBROUTINE GREQUEST_FREE_FUNCTION(EXTRA_STATE, IERROR)
INTEGER IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE
注解
在释放通用请求时,将调用 free_fn 函数来清理用户分配的资源。
free_fn回调由MPI_{Wait| 调用Test}{any|some|all} 调用完成了与此回调关联的通用化请求。 free_fn 是在调用同一请求的 query_fn 之后调用的。 但是,如果 MPI 调用完成了多个通用化请求,则 MPI 不指定调用free_fn 回调函数的顺序。
对于通过调用 free_fn MPI_Request_free 释放的通用化请求, (不调用 MPI_{Wait|测试}{any|some|all} 将针对此类请求) 。 在这种情况下,将在 MPI 调用 MPI_Request_free或 MPI 调用 MPI_Grequest_complete中调用回调函数,以最后发生的情况为准,即在这种情况下,一旦发生 MPI_Request_free 和 MPI_Grequest_complete 调用,就会立即执行实际释放代码。 在 free_fn 完成后,请求才会解除分配。 请注意, free_fn 将由正确的程序为每个请求调用一次。
要求
产品 |
HPC Pack 2012 MS-MPI 可再发行程序包、HPC Pack 2008 R2 MS-MPI 可再发行程序包、HPC Pack 2008 MS-MPI 可再发行程序包或 HPC Pack 2008 客户端实用工具 |
标头 |
Mpi.h;Mpif.h |