MPI_T 参见MPI-3标准第14.3.5节。
17.2.351. MPI_T_cvar_get_info
MPI_T_cvar_get_info — 从控制变量查询信息
17.2.351.1. 语法
17.2.351.1.1. C语法
#include <mpi.h>
int MPI_T_cvar_get_info(int cvar_index, char *name, int *name_len,
int *verbosity, MPI_Datatype *datatype, MPI_T_enum *enumtype,
const *desc, int *desc_len, int *bind, int *scope)
17.2.351.2. 输入参数
cvar_index: 要查询的控制变量索引。
17.2.351.3. 输入/输出参数
name_len: 名称字符串和/或缓冲区的长度。desc_len: 描述字符串和/或缓冲区的长度。
17.2.351.4. 输出参数
name: 用于返回包含控制变量名称的字符串缓冲区。verbosity: 该变量的详细级别。datatype: 控制变量中存储信息的MPI数据类型。enumtype: 枚举信息的可选描述符。desc: 用于返回包含控制变量描述的字符串缓冲区。bind: 该变量必须绑定的MPI对象类型。scope: 该变量可被修改的作用范围。
17.2.351.5. 描述
MPI_T_cvar_get_info 可用于查询控制变量的相关信息。该函数分别在参数 verbosity、datatype、enumtype、bind 和 scope 中返回所查询控制变量的详细级别、数据类型、枚举类型、绑定方式和作用范围。Open MPI中的控制变量与MCA参数相同。
17.2.351.6. 详细程度
由于Open MPI暴露了大量MCA参数(控制变量),这些控制变量被分为九个详细级别,对应等效的ompi_info级别。这九个级别按递增顺序依次为:
MPI_T_VERBOSITY_USER_BASIC: 用户感兴趣的基本信息MPI_T_VERBOSITY_USER_DETAIL: 用户感兴趣的详细信息MPI_T_VERBOSITY_USER_ALL: 用户感兴趣的所有剩余信息MPI_T_VERBOSITY_TUNER_BASIC: 调优所需的基本信息MPI_T_VERBOSITY_TUNER_DETAIL: 调优所需的详细信息MPI_T_VERBOSITY_TUNER_ALL: 调优所需的所有剩余信息MPI_T_VERBOSITY_MPIDEV_BASIC: 为MPI实现者提供的基本信息MPI_T_VERBOSITY_MPIDEV_DETAIL: 为MPI实现者提供的详细信息MPI_T_VERBOSITY_MPIDEV_ALL: 为MPI实现者提供的所有剩余信息
更多信息请参阅MPI-3标准第14.3.1章节。
17.2.351.7. 数据类型
由MPI_T_cvar_get_info返回的数据类型仅限于以下数据类型之一:MPI_INT、MPI_UNSIGNED、MPI_UNSIGNED_LONG、MPI_UNSIGNED_LONG_LONG、MPI_COUNT、MPI_CHAR和MPI_DOUBLE。有关MPI_T中数据类型的更多信息,请参阅MPI-3第14.3.5节。
17.2.351.8. 范围
作用域描述了何时以及如何对控制变量进行更改。根据MPI-3第14.3.6节的规定,作用域可以是以下任意一种:
MPI_T_SCOPE_CONSTANT: 只读,值为常量MPI_T_SCOPE_READONLY: 只读,不可写入,但可以变更MPI_T_SCOPE_LOCAL: 可能可写,写入是本地操作MPI_T_SCOPE_GROUP: 可写属性,必须针对进程组进行操作,组内所有进程必须设置为一致的值MPI_T_SCOPE_GROUP_EQ: 可能可写,必须对一组进程执行操作,组内所有进程必须设置为相同的值MPI_T_SCOPE_ALL: 可写入,必须对所有进程执行,所有连接的进程必须设置为一致的值MPI_T_SCOPE_ALL_EQ: 可能可写,必须对所有进程执行,所有连接的进程必须设置为相同的值
更多信息请参阅MPI-3标准第14.3.6章节表14.4。
17.2.351.9. 注意事项
该MPI工具接口函数返回两个字符串。此函数为每个字符串接收两个参数:一个用于存储字符串的缓冲区,以及一个初始必须指定缓冲区大小的长度值。如果传入的长度为n,则该函数最多将字符串的n-1个字符复制到相应缓冲区中,并将长度设置为实际复制的字符数减1。若长度参数为NULL或指定的长度值为0,则忽略对应的字符串缓冲区且不返回该字符串。
Open MPI目前不支持将控制变量绑定到MPI对象。
17.2.351.10. 错误
MPI_T_cvar_get_info 将在以下情况下失败:
MPI_T_ERR_NOT_INITIALIZED: MPI工具接口未初始化MPI_T_ERR_INVALID_INDEX: 控制变量索引无效
另请参阅