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_fnMPI_WaitanyMPI_Testany调用,MPI 调用将返回上一次回调返回的错误代码,即free_fn。 如果调用 MPI_WaitsomeMPI_WaitallMPI_TestsomeMPI_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_freeMPI_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

另请参阅

MPI 外部函数

MPI_Grequest_start

MPI_Waitall

MPI_Waitsome

MPI_Waitany

MPI_Testall

MPI_Testsome

MPI_Testany