ParLoT: Efficient Whole-Program Call Tracing for HPC Applications
ParLoT: Efficient Whole-Program Call Tracing for HPC Applications
复制标题
ParLoT:HPC 应用程序的高效全程序调用跟踪
DOI:
10.1007/978-3-030-17872-7_10
复制
发表时间:
2017
期刊:
影响因子:
--
通讯作者:
Martin Burtscher
中科院分区:
文献类型:
--
作者:
Saeed Taheri;Sindhu Devale;G. Gopalakrishnan;Martin Burtscher
The complexity of HPC software and hardware is quickly increasing. As a consequence, the need for efficient execution tracing to gain insight into HPC application behavior is steadily growing. Unfortunately, available tools either do not produce traces with enough detail or incur large overheads. An efficient tracing method that overcomes the tradeoff between maximum information and minimum overhead is therefore urgently needed. This paper presents such a method and tool, called ParLoT, with the following key features. (1) It describes a technique that makes low-overhead on-the-fly compression of whole-program call traces feasible. (2) It presents a new, efficient, incremental trace-compression approach that reduces the trace volume dynamically, which lowers not only the needed bandwidth but also the tracing overhead. (3) It collects all caller/callee relations, call frequencies, call stacks, as well as the full trace of all calls and returns executed by each thread, including in library code. (4) It works on top of existing dynamic binary instrumentation tools, thus requiring neither source-code modifications nor recompilation. (5) It supports program analysis and debugging at the thread, thread-group, and program level. This paper establishes that comparable capabilities are currently unavailable. Our experiments with the NAS parallel benchmarks running on the Comet supercomputer with up to 1,024 cores show that ParLoT can collect whole-program function-call traces at an average tracing bandwidth of just 56 kB/s per core.