Proceedings Article10.1109/CGO.2006.32
Selecting Software Phase Markers with Code Structure Analysis
Jeremy Lau,Erez Perelman,Brad Calder +2 more
- 26 Mar 2006
- pp 135-146
TL;DR: This paper presents an automated profiling approach to identify code locations whose executions correlate with phase changes and shows that the phase markers can be used to partition the program's execution at code transitions to pick accurately simulation points for SimPoint.
read more
Abstract: Most programs are repetitive, where similar behavior can be seen at different execution times. Algorithms have been proposed that automatically group similar portions of a program's execution into phases, where samples of execution in the same phase have homogeneous behavior and similar resource requirements. In this paper, we present an automated profiling approach to identify code locations whose executions correlate with phase changes. These ''software phase markers" can be used to easily detect phase changes across different inputs to a program without hardware support. Our approach builds a combined hierarchical procedure call and loop graph to represent a program's execution, where each edge also tracks the max, average, and standard deviation in hierarchical execution variability on paths from that edge. We search this annotated call-loop graph for instructions in the binary that accurately identify the start of unique stable behaviors across different inputs. We show that our phase markers can be used to accurately partition execution into units of repeating homogeneous behavior by counting execution cycles and data cache hits. We also compare the use of our software markers to prior work on guiding data cache reconfiguration using data-reuse markers. Finally, we show that the phase markers can be used to partition the program's execution at code transitions to pick accurately simulation points for SimPoint. When simulation points are defined in terms of phase markers, they can potentially be re-used across inputs, compiler optimizations, and different instruction set architectures for the same source code.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
•Journal Article
SimPoint 3.0: Faster and More Flexible Program Phase Analysis
TL;DR: This paper describes the new features available in the SimPoint 3.0 release, which provides support for correctly clustering variable length intervals, taking into consideration the weight of each interval during clustering.
•Book
Computer Architecture Performance Evaluation Methods
Lieven Eeckhout
- 28 May 2010
TL;DR: The goal of this book is to present an overview of the current state-of-the-art in computer architecture performance evaluation, with a special emphasis on methods for exploring processor architectures.
116
Online Phase Detection Algorithms
Priya Nagpurkar,Chandra Krintz,Michael Hind,Peter F. Sweeney,Vadakkedathu T. Rajan +4 more
- 26 Mar 2006
TL;DR: This work contributes a novel framework for online phase detection, multiple instantiations of the framework that produce novel online phase Detection algorithms, a novel client- and machine-independent baseline methodology for evaluating the accuracy of an online phase detector, and a metric to compare online detectors to this baseline.
79
Program-level adaptive memory management
Chengliang Zhang,Kirk Kelsey,Xipeng Shen,Chen Ding,Matthew Hertz,Mitsunori Ogihara +5 more
- 10 Jun 2006
TL;DR: This work demonstrates the presence of an optimal heap size for a number of applications and introduces a scheme which adaptively finds this good heap size by adapting itself dynamically, independent of the underlying main memory size, code optimizations, and garbage collection algorithm.
A survey on cache tuning from a power/energy perspective
Wei Zang,Ann Gordon-Ross +1 more
TL;DR: This survey focuses on state-of-the-art offline static and online dynamic cache tuning techniques and summarizes the techniques' attributes, major challenges, and potential research trends to inspire novel ideas and future research avenues.
46
References
Automatically characterizing large scale program behavior
Timothy Sherwood,Erez Perelman,Greg Hamerly,Brad Calder +3 more
- 01 Oct 2002
TL;DR: This work quantifies the effectiveness of Basic Block Vectors in capturing program behavior across several different architectural metrics, explores the large scale behavior of several programs, and develops a set of algorithms based on clustering capable of analyzing this behavior.
Runtime power monitoring in high-end processors: methodology and empirical data
Canturk Isci,Margaret Martonosi +1 more
- 03 Dec 2003
TL;DR: This paper describes a technique for a coordinated measurement approach that combines real total power measurement with performance-counter-based, per-unit power estimation and provides power breakdowns for 22 of the major CPUsubunits over minutes of SPEC2000 and desktop workloadexecution.
•Journal Article
SimPoint 3.0: Faster and More Flexible Program Phase Analysis
TL;DR: This paper describes the new features available in the SimPoint 3.0 release, which provides support for correctly clustering variable length intervals, taking into consideration the weight of each interval during clustering.
Managing multi-configuration hardware via dynamic working set analysis
Ashutosh S. Dhodapkar,James E. Smith +1 more
- 01 May 2002
TL;DR: When applied to reconfigurable instruction caches, an algorithm that identifies recurring phases achieves power savings and performance similar to the best algorithm reported to date, but with orders-of-magnitude savings in the number of re-tunings.
Comparing program phase detection techniques
Ashutosh S. Dhodapkar,James E. Smith +1 more
- 03 Dec 2003
TL;DR: Threedynamic program phase detection techniques are compared- using instruction working sets, basic block vectors (BBV), and conditional branch counts to show that techniques based on procedure granularities don't perform as well as those based on instruction or basic block granularity.