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_classMPI_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

另请参阅

MPI 外部函数

MPI_Grequest_query_function

MPI_Grequest_free_function

MPI_Grequest_cancel_function