MPI_Grequest_start 函数
创建并返回用户定义的请求。
语法
int MPIAPI MPI_Grequest_start(
_In_ MPI_Grequest_query_function *query_fn,
_In_ MPI_Grequest_free_function *free_fn,
_In_ MPI_Grequest_cancel_function *cancel_fn,
_In_opt_ void *extra_state,
_Out_ MPI_Request *request
);
参数
query_fn [in]
查询请求状态时调用的回调函数。free_fn [in]
释放请求时调用的回调函数。cancel_fn [in]
取消请求时调用的回调函数。extra_state [in, 可选]
传递给上述函数的额外状态。request [out]
通用化请求。
返回值
返回成功 时MPI_SUCCESS 。 否则,返回值为错误代码。
在 Fortran 中,返回值存储在 IERROR 参数中。
Fortran
MPI_GREQUEST_START(QUERY_FN, FREE_FN, CANCEL_FN, EXTRA_STATE, REQUEST, IERROR)
INTEGER REQUEST, IERROR
EXTERNAL QUERY_FN, FREE_FN, CANCEL_FN
INTEGER (KIND=MPI_ADDRESS_KIND) EXTRA_STATE
注解
回调函数的返回值必须是有效的 MPI 错误代码或类。 此值可以是任何 MPI 例程 (的返回值,) 下面有一个例外,也可以是任何 MPI 错误类。 对于可移植程序,可以使用 MPI_ERR_OTHER ;若要提供更具体的信息,请使用 MPI_Add_error_class 或 MPI_Add_error_code 创建新的 MPI 错误类或代码,并返回该值。
MPI 标准对回调例程的返回值不明确。 但是,标准中有一些说明,表明这些是 MPI 错误代码。 例如,第 169 行 46 页到第 170 页,第 1 行要求 free_fn 返回 MPI 错误代码,该代码可在 MPI 完成函数返回 MPI_ERR_IN_STATUS时使用。
一种特殊情况是当属性回调例程返回失败时 MPI_Comm_dup 返回的错误值。 MPI 标准不清楚可以使用哪些值来指示错误返回。 此外,Intel MPI 测试套件使用非零值来指示失败,并且预期当属性例程遇到错误时 ,MPI_Comm_dup 将返回这些值。 此类错误值可能不是有效的 MPI 错误代码或类。 因此,用户有责任在属性回调返回时使用有效的 MPI 错误代码(如果这些错误代码将由通用化请求回调返回),或者检测这些错误代码并将其转换为有效的 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 |
库 |
Msmpi.lib |
DLL |
Msmpi.dll |