5.1. Open MPI 性能分析接口

Open MPI v5.0.x 支持 MPI 标准为 C 和 Fortran 绑定规定的 "PMPI" 性能分析接口(不包含 Open MPI Java 绑定扩展)。

根据MPI-4.0标准第15.2.1节规定,MPI实现必须说明各绑定层之间的层级关系,以便性能分析工具开发者了解需要为每个绑定层实现性能分析接口,还是可以通过仅针对最底层例程实现该接口来节省工作量。

一般来说,Open MPI的Fortran绑定是在C绑定之上实现的。因此,在C语言中实现MPI_Init()的分析工具开发者也会拦截所有对MPI_INIT的Fortran调用,无论用户使用的是mpif.huse mpi还是use mpi_f08 Fortran接口。

然而,有少数例程中Open MPI的Fortran绑定并非简单封装后端C MPI绑定。因此,性能分析工具开发者必须在其源语言接口绑定中拦截以下列出的API,以获得完整的性能分析覆盖范围。但需注意的是,开发者只需拦截以下每个例程的mpif.h绑定;use mpiuse mpi_f08绑定最终都会调用mpif.h绑定。

需要注意的是,拦截所有接口中的所有例程并无害处。事实上,这是实现性能分析接口最具可移植性的方式。由于Open MPI的Fortran绑定——在大多数情况下——是基于其C绑定实现的,性能分析开发者可以忽略除上述列举之外的所有Fortran接口。