可扩展性能工具:MPI通信器管理
1. 引言
Scalasca是一个开源工具集,用于分析基于MPI和/或OpenMP并行编程接口的应用程序的执行行为,支持多种当前的高性能计算(HPC)平台。它将紧凑的运行时摘要(特别适合获取执行性能的总体概况)与通过事件跟踪和并行重放对并发效率低下问题进行深入分析相结合。凭借其高度可扩展的设计,Scalasca促进了对大量进程组成的一系列应用程序的性能分析和调优。
许多HPC应用程序在IBM Blue Gene和Cray XT等领先系统上表现出了良好的扩展性,能够有效利用数十万个处理器核心。例如,PFLOTRAN三维储层模拟器在能源部的SciDAC项目中被用于模拟地质二氧化碳封存和地下水中放射性核素污染物的迁移。然而,使用Scalasca对PFLOTRAN在IBM BG/P和Cray XT5系统上进行性能测量和分析时,发现了Scalasca测量方法存在严重的可扩展性问题,需要解决这些问题才能进行有效的性能分析。
在使用“2B”测试用例时,PFLOTRAN通过HDF5和PETSc库为每个进程创建了18个MPI_COMM_WORLD全局通信器副本和4个MPI_COMM_SELF副本。对于Scalasca运行时摘要实验,MPI通信器会被忽略,但对于并行跟踪分析,需要记录通信器的定义及其在MPI通信和同步事件记录中的使用情况。原有的通信器管理实现存在不足,随着进程数量的增加,所需的存储空间和处理时间呈线性或更差的增长,导致无法收集和分析大规模PFLOTRAN跟踪数据。此外,由于将本地排名转换为全局排名的成本较高,跟踪收集期间应用程序执行时间的膨胀在“flow”阶段尤为严重。
为了解决这些问题,对Scalasca测量系统的通信器管理和表