17.2.363. MPI_T_pvar_handle_alloc

MPI_T_pvar_handle_alloc, MPI_T_pvar_handle_free - 分配/释放MPI性能变量句柄

17.2.363.1. 语法

17.2.363.1.1. C语法

#include <mpi.h>

int MPI_T_pvar_handle_alloc(int session, int pvar_index, void *obj_handle,
                            MPI_T_pvar_handle *handle, int *count)

int MPI_T_pvar_handle_free(int session, MPI_T_pvar_handle *handle)

17.2.363.2. 描述

MPI_T_pvar_handle_allocpvar_index中指定的性能变量绑定到由参数session标识的会话中obj_handle指定的MPI对象。该对象通过参数obj_handle作为存储对象句柄的本地变量地址传递。如果MPI_T_pvar_get_info返回MPI_T_BIND_NO_OBJECT作为变量的绑定类型,则忽略obj_handle参数。分配给引用变量的句柄通过参数handle返回。成功返回时,count包含用于表示此变量的元素数量(其数据类型由先前MPI_T_pvar_get_info调用返回)。

pvar_index的取值范围应为0到num_pvar - 1之间,其中num_pvar是通过先前调用MPI_T_pvar_get_num确定的可用性能变量数量。它所引用的MPI对象类型必须与先前调用MPI_T_pvar_get_info时在bind参数中返回的类型保持一致。

MPI_T_pvar_handle_free 释放由 MPI_T_pvar_handle_alloc 分配的句柄,并将handle参数设置为 MPI_T_PVAR_HANDLE_NULL。

17.2.363.3. 错误

MPI_T_pvar_handle_alloc 在以下情况下会失败:

  • MPI_T_ERR_NOT_INITIALIZED: MPI工具接口未初始化

  • MPI_T_ERR_INVALID_INDEX: 性能变量索引无效

  • MPI_T_ERR_OUT_OF_HANDLES: 没有更多可用句柄

MPI_T_pvar_handle_free 在以下情况下会失败:

  • MPI_T_ERR_NOT_INITIALIZED: MPI工具接口未初始化

  • MPI_T_ERR_INVALID_HANDLE: 句柄无效或传入的句柄参数与会话参数不关联