An Efficient Data-Dependence Profiler for Sequential and Parallel Programs
Citations Over TimeTop 10% of 2015 papers
Abstract
Extracting data dependences from programs serves as the foundation of many program analysis and transformation methods, including automatic parallelization, runtime scheduling, and performance tuning. To obtain data dependences, more and more related tools are adopting profiling approaches because they can track dynamically allocated memory, pointers, and array indices. However, dependence profiling suffers from high runtime and space overhead. To lower the overhead, earlier dependence profiling techniques exploit features of the specific program analyses they are designed for. As a result, every program analysis tool in need of data-dependence information requires its own customized profiler. In this paper, we present an efficient and at the same time generic data-dependence profiler that can be used as a uniform basis for different dependence-based program analyses. Its lock-free parallel design reduces the runtime overhead to around 86× on average. Moreover, signature-based memory management adjusts space requirements to practical needs. Finally, to support analyses and tuning approaches for parallel programs such as communication pattern detection, our profiler produces detailed dependence records not only for sequential but also for multi-threaded code.
Related Papers
- → Parallelization of a dynamic unstructured algorithm using three leading programming paradigms(2000)27 cited
- → A Vulnerability Exploits Detection Method Based on Binary Program Behavior Analysis(2012)
- Brief Introduction of Profile Guided Compiler Technology(2006)
- The Application of Datasnap to Internet Exploition(2002)
- A new approach to deploying private mobile network exploits(2016)