一句话:提出 Apophenia,为任务型运行时系统自动追踪依赖分析,消除手工 trace 标注并提升复杂程序并行性能。
隐式并行的任务型运行时系统通常通过动态依赖分析从顺序程序中提取并行性,但当任务粒度变细时,该分析开销变得很高。已有 tracing 技术让程序员标注重复执行的程序片段,并由运行时记忆化这些片段的依赖分析,从而降低开销;然而手工标注脆弱,且难以适用于由独立组件组合而成的复杂程序。本文提出 Apophenia,通过一系列动态字符串分析自动发现提交给运行时的任务流中的重复程序片段,从而自动追踪依赖分析,消除人工标注负担。在 Perlmutter 和 Eos 超级计算机上,Apophenia 的性能达到手工追踪程序的 0.92x–1.03x,并能有效追踪此前无法追踪的程序,取得 0.91x–2.82x 的收益。
Implicitly parallel task-based runtime systems often perform dynamic analysis to discover dependencies in and extract parallelism from sequential programs. Dependence analysis becomes expensive as task granularity drops below a threshold. Tracing techniques have been developed where programmers annotate repeated program fragments (traces) issued by the application, and the runtime system memoizes the dependence analysis for those fragments, greatly reducing overhead when the fragments are executed again. However, manual trace annotation can be brittle and not easily applicable to complex programs built through the composition of independent components. We introduce Apophenia, a system that automatically traces the dependence analysis of task-based runtime systems, removing the burden of manual annotations from programmers and enabling new and complex programs to be traced. Apophenia identifies traces dynamically through a series of dynamic string analyses, which find repeated program fragments in the stream of tasks issued to the runtime system. We show that Apophenia is able to come between 0.92x--1.03x the performance of manually traced programs, and is able to effectively trace previously untraced programs to yield speedups of between 0.91x--2.82x on the Perlmutter and Eos supercomputers.
@inproceedings{paperbot11482,
title = {Automatic Tracing in Task-Based Runtime Systems},
author = {Rohan Yadav and Michael Bauer and David Broman and Michael Garland and Alex Aiken and Fredrik Kjolstad},
booktitle = {ASPLOS},
year = {2025},
doi = {10.1145/3669940.3707237}
}