并行性能评估工具中的插桩优化
1. 引言
大规模并行超级计算机的出现对观察应用程序性能的工具提出了挑战。随着并行系统的复杂性和规模不断发展,评估并行程序性能的技术也必须与时俱进。
性能评估常用的两种技术是剖析(Profiling)和跟踪(Tracing)。剖析工具会维护每个执行线程上例程的性能指标摘要统计信息,如包含和排除时间或硬件性能监视器计数;跟踪工具则会在跟踪文件中生成带有性能数据的时间戳事件。
不过,任何经验性测量方法都会在程序执行中引入开销,其大小和类型取决于测量方法及其调用次数。因此,需要在获取性能数据的需求与获取数据的成本及其准确性之间取得平衡。数据过多可能导致测量干扰和扰动,数据过少则会使性能评估变得困难。
性能评估工具主要采用基于周期性中断的程序状态采样或直接插入测量代码的插桩方式。采样通常会根据中断间隔引入固定开销,被认为对性能的扰动较小,但它缺乏事件特异性,无法观察事件间的操作,因此不太适用于强大的并行性能分析。
这里我们主要讨论基于直接测量的技术,即在相关事件的代码位置插入插桩钩子。在执行过程中,程序操作触发事件,测量代码被激活以检查性能行为。由于事件生成不是中断的结果,事件生成的数量与程序代码的执行频率相关,这可能导致事件数量显著增加,且事件测量之间的时间不固定,影响测量准确性。因此,需要进行“插桩优化”以平衡开销和准确性。
接下来我们将探讨在 TAU 性能系统中优化程序插桩的工作,包括背景和动机、如何通过选择性插桩和运行时测量控制来限制插桩,以及未来计划。
2. 动机
在解决性能评估问题时,需要观察特定的性能数据。但测量会引入执行时间开销,进而影响执
超级会员免费看
订阅专栏 解锁全文
8

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



