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 可用于查询控制变量的相关信息。该函数分别在参数 verbositydatatypeenumtypebindscope 中返回所查询控制变量的详细级别、数据类型、枚举类型、绑定方式和作用范围。Open MPI中的控制变量与MCA参数相同。

17.2.351.6. 详细程度

由于Open MPI暴露了大量MCA参数(控制变量),这些控制变量被分为九个详细级别,对应等效的ompi_info级别。这九个级别按递增顺序依次为:

  1. MPI_T_VERBOSITY_USER_BASIC: 用户感兴趣的基本信息

  2. MPI_T_VERBOSITY_USER_DETAIL: 用户感兴趣的详细信息

  3. MPI_T_VERBOSITY_USER_ALL: 用户感兴趣的所有剩余信息

  4. MPI_T_VERBOSITY_TUNER_BASIC: 调优所需的基本信息

  5. MPI_T_VERBOSITY_TUNER_DETAIL: 调优所需的详细信息

  6. MPI_T_VERBOSITY_TUNER_ALL: 调优所需的所有剩余信息

  7. MPI_T_VERBOSITY_MPIDEV_BASIC: 为MPI实现者提供的基本信息

  8. MPI_T_VERBOSITY_MPIDEV_DETAIL: 为MPI实现者提供的详细信息

  9. MPI_T_VERBOSITY_MPIDEV_ALL: 为MPI实现者提供的所有剩余信息

更多信息请参阅MPI-3标准第14.3.1章节。

17.2.351.7. 数据类型

MPI_T_cvar_get_info返回的数据类型仅限于以下数据类型之一:MPI_INTMPI_UNSIGNEDMPI_UNSIGNED_LONGMPI_UNSIGNED_LONG_LONGMPI_COUNTMPI_CHARMPI_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: 控制变量索引无效

另请参阅

ompi_info