| |
The goal of our research is to develop automatic techniques that
are capable of finding and exploiting program phase
behavior. These techniques can be used to guide program analysis,
optimization and simulation. For questions about SimPoint,
please send email to our Yahoo
Newsgroup at
simpoint@yahoogroups.com or feel free to contact
Brad
Calder at calder@cs.ucsd.edu.
February 2006:
|
SimPoint 3.2 release - Provides the following fixes:
- Fixed compile bug on 64 bit machines (i.e. AMD64 and PPC/OSX)
- Unrolled inner k-means loop for added performance
- Added our own random number generator (in Utilities.h), so we get
consistent random numbers across platforms
- Removed some old code in Datapoint/Dataset classes that are not
currently being used (e.g. computing early indexes)
|
June 2005:
| SimPoint 3.0 release - Provides the following new features:
| 10x to 50x faster than SimPoint 2.0 for picking simulation points |
| Support for processing any number of intervals using sub-sampling |
| More efficient searching options for finding the best clustering |
| Ability to report only the simulation points that account for the
majority of execution |
| Support for variable length intervals (SimPoint 2.0 cannot be used for
variable length intervals) |
| We updated the SimPoint license to clarify industrial use |
|
| Yahoo Newsgroup
started for asking questions and suggesting features for SimPoint |
| All of the features for SimPoint 3.0 and the command line options are
described in:
|
| Recent/New SimPoint related publications are
also available:
|
Automatic Logging of Operating System Effects to Guide Application Level Architecture Simulation,
Sigmetrics, June 2006 |
|
Using Machine Learning to Guide Architecture Simulation,
JMLR, 2006 |
|
Detecting Phases in Parallel Applications on Shared Memory Architectures,
IPDPS, April 2006 |
|
Comparing Multinomial and K-Means Clustering for SimPoint,
ISPASS, March 2006 |
|
Considering All Starting Points for Simultaneous Multithreading Simulation,
ISPASS, March 2006 |
|
Selecting Software Phase Markers with Code Structure Analysis,
CGO, March 2006 |
|
Efficient Sampling Startup for Sampled Processor Simulation,
HiPEAC, November 2005 |
|
Dynamic Phase Analysis for Cycle-Close Trace Generation ,
CODES+ISSS 2005 |
|
The Strong Correlation Between Code Signatures and Performance, ISPASS
2005 |
|
Motivation for Variable Length Intervals and Hierarchical Phase Behavior,
ISPASS 2005 |
|
Phase-Aware Remote Profiling, CGO 2005 |
|
Transition Phase Classification and Prediction, HPCA 2005
|
|
| Independent validation of the SimPoint approach by other groups:
|
December 2004:
|
PinPoints -
Dynamic binary instrumentation framework from Intel for x86 and IA-64. The framework provides the support to gather Basic Block Vectors and then run SimPoint all together automatically to pick the simulation points.
|
SimPoint is one specific use of our
Off-Line Phase Clustering Analysis motivated by
the need to perform efficient and accurate program analysis and architecture
simulation, and several researchers in academia and at Intel are using SimPoint
to accurately guide their architecture simulation research.
The first step of our Off-Line Phase Analysis is to quickly profile the
frequency of the code being executed to create code signatures that represent
the program's behavior at different points during execution. These
signatures (vectors) are then used along with several techniques from clustering
analysis to concisely group together similar parts of the program's execution
into phases. This information then can be used to gain an understanding of
whole program behavior, target optimizations at particular phases of execution,
and to greatly reduce simulation time by using only representative samples.
SimPoint uses the phase clusterings generated by the off-line
analysis to intelligently choose where to spend your simulation time. There are many different ways to use SimPoint and a handful of
algorithms provided. At the highest level, SimPoint calculates phases for a program/input pair, and then
chooses a single representative from each phase. Users can then
perform program analysis or perform detailed simulation only on these chosen
representatives. Then combining these statistics provides a
complete and accurate representation of the full execution of the program. The
representative for each phase (which is a cluster of intervals) is chosen by
finding the interval closest to the clusterÂ’s center (centroid). This selected
interval for a phase is called a simulation point for that phase. The
whole program's behavior is then estimated by weighing the performance results
of each simulation point by the size (number of intervals) of the phase it comes
from. SimPoint is capable of significantly reducing program analysis and
simulation time and provides an accurate characterization of the full program.
We provide the SimPoint Toolkit to automatically perform
the off-line phase analysis and picking of simulation points.
|
If you use the Standard Simulation Points on this web page or our
SimPoint Toolkit, please reference the following paper:
Timothy Sherwood, Erez Perelman, Greg Hamerly and Brad
Calder.
Automatically Characterizing Large Scale Program Behavior, In the
proceedings of the Tenth International Conference on Architectural Support for
Programming Languages and Operating Systems (ASPLOS 2002), October 2002.
San Jose, California. |
|
If you use the Early SimPoint or Variance SimPoint algorithms
or their simulation points,
please reference the following paper:
Erez Perelman, Greg Hamerly and Brad Calder.
Picking Statistically Valid and Early Simulation Points , In the
International Conference on Parallel Architectures and Compilation Techniques,
September 2003.
|
This research is sponsored by NSF, Intel and Microsoft
| |
|