17.2.279. MPI_Pcontrol
MPI_Pcontrol — 控制性能分析。
17.2.279.1. 语法
17.2.279.1.1. C语法
#include <mpi.h>
int MPI_Pcontrol(const int level, ... )
17.2.279.1.2. Fortran语法
USE MPI
! or the older form: INCLUDE 'mpif.h'
MPI_PCONTROL(LEVEL)
INTEGER LEVEL
17.2.279.1.3. Fortran 2008 语法
USE mpi_f08
MPI_Pcontrol(level)
INTEGER, INTENT(IN) :: level
17.2.279.2. 输入参数
level: 分析级别。
17.2.279.3. 描述
MPI库本身并不使用此例程;它们会立即返回到用户代码。然而,调用此例程的存在允许用户显式调用性能分析工具包。
由于MPI无法控制性能分析代码的实现,我们无法精确指定通过调用MPI_Pcontrol所提供的语义。这种模糊性还延伸到该函数的参数数量及其数据类型。
然而,为了确保用户代码在不同性能分析库之间具有一定程度的可移植性,我们要求以下level值遵循特定含义:
o level==0 性能分析已禁用。
o level==1 分析功能在默认的常规详细级别下启用。
o level==2 时,性能分析缓冲区将被刷新。(在某些分析器中可能无操作)。
o 其他所有level值的效果和额外参数由profile库自定义。
我们还要求在调用MPI_Init后的默认状态下,性能分析功能应处于正常默认级别(即相当于刚调用过参数为1的MPI_Pcontrol)。这样用户只需链接性能分析库即可获取性能分析输出,完全无需修改源代码。
在标准MPI库中将MPI_Pcontrol提供为空操作,允许用户修改其源代码以获取更详细的性能分析信息,同时仍能使用完全相同的代码链接到标准MPI库。
17.2.279.4. 注意事项
此例程为性能分析控制提供了一个通用接口。关于级别及其他参数的具体解释由性能分析库自行决定。
此函数不会返回错误值。因此,在调用MPI_Init之前或MPI_Finalize之后调用它的结果是未定义的。