Abstract
Dataflow graphs are a popular abstraction for describing computation, used in many systems for high-level optimization. For execution, dataflow graphs are lowered and optimized through layers of program representations down to machine instructions. Unfortunately, performance profiling such systems is cumbersome, as today's profilers present results merely at instruction and function granularity. This obfuscates the connection between profiles and high-level constructs, such as operators and pipelines, making interpretation of profiles an exercise in puzzling and deduction. In this paper, we show how to profile compiling dataflow systems at higher abstraction levels. Our approach tracks the code generation process and aggregates profiling data to any abstraction level. This bridges the semantic gap to match the engineer's current information need and even creates a comprehensible way to report timing information within profiling data. We have evaluated this approach within our compiling DBMS Umbra, showing that the approach is generally applicable for compiling dataflow systems and can be implemented with high accuracy and reasonable overhead.
Author supplied keywords
Cite
CITATION STYLE
Beischl, A., Kersten, T., Bandle, M., Giceva, J., & Neumann, T. (2021). Profiling dataflow systems on multiple abstraction levels. In EuroSys 2021 - Proceedings of the 16th European Conference on Computer Systems (pp. 474–489). Association for Computing Machinery, Inc. https://doi.org/10.1145/3447786.3456254
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.