DepGraph: Localizing Performance Bottlenecks in Multi-Core Applications Using Waiting Dependency Graphs and Software Tracing
Naser Ezzati-Jivan, Quentin Fournier, Michel R. Dagenais, and, Abdelwahab Hamou-Lhadj

TL;DR
DepGraph introduces a system tracing method that constructs Waiting Dependency Graphs to identify and analyze performance bottlenecks in multi-core applications, aiding developers in optimizing resource utilization.
Contribution
The paper presents a novel approach using system-level tracing and dependency graphs to localize performance bottlenecks in multi-core systems, with low overhead suitable for production.
Findings
Effectively identifies bottlenecks in industry-level cases.
Analyzes and explains three performance anomalies.
Overhead of the method remains below 10.1%.
Abstract
This paper addresses the challenge of understanding the waiting dependencies between the threads and hardware resources required to complete a task. The objective is to improve software performance by detecting the underlying bottlenecks caused by system-level blocking dependencies. In this paper, we use a system level tracing approach to extract a Waiting Dependency Graph that shows the breakdown of a task execution among all the interleaving threads and resources. The method allows developers and system administrators to quickly discover how the total execution time is divided among its interacting threads and resources. Ultimately, the method helps detecting bottlenecks and highlighting their possible causes. Our experiments show the effectiveness of the proposed approach in several industry-level use cases. Three performance anomalies are analysed and explained using the proposed…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
