自动检测OpenMP应用程序低效问题及内存访问局部性分析
1. Periscope系统概述
Periscope是一个用于大规模类集群系统的自动化性能分析系统。该系统通过分布在机器上的一组代理进行分析,这些代理呈层次化排列:
- 节点级代理处于层次结构的最低层,负责检测性能属性。
- 中间代理以主代理为根、节点级代理为叶形成树状结构,负责整合节点级代理的结果。
- 主代理整合整个系统的性能数据,并连接到工具的前端,作为与用户的接口。
所有组件都使用注册服务来注册自身并发现更高或更低级别的代理。尽管Periscope系统的某些部分仍在开发中,但节点级代理已具备对OpenMP应用程序进行性能分析的功能。这种代理层次结构主要是为了在大型机器(数百个节点)上实现可扩展的分析,避免集中收集性能数据可能导致的数据管理、分析和可视化的可扩展性问题。
2. 监测与数据模型
2.1 监测方式
通过POMP监测接口和Opari源到源工具来监测OpenMP应用程序的执行。Opari在OpenMP构造周围添加对符合POMP的监测库的调用,Periscope在与目标应用程序链接的库中实现POMP接口,从而能够观察OpenMP应用程序的执行。
监测库观察应用程序生成的事件,并将事件记录写入共享内存段中的缓冲区。位于同一节点上的节点级代理对这些事件记录进行处理和分析,以尽量减少对目标应用程序的干扰。
2.2 数据模型
节点级代理分析监测事件,并生成与ASL数据模型相对应的性能数据。对于OpenMP应用程序,数据模型由ParPerf数据结构表示:
超级会员免费看
订阅专栏 解锁全文
1111

被折叠的 条评论
为什么被折叠?



