Stabilizer: Statistically Sound Performance Evaluation

Subscribers:
344,000
Published on ● Video Link: https://www.youtube.com/watch?v=8Ph1l-_0PeI



Duration: 1:11:36
183 views
4


Researchers and software developers require effective performance evaluation. Researchers must evaluate optimizations or measure overhead. Software developers use automatic performance regression tests to discover when changes improve or degrade performance. The standard methodology is to compare execution times before and after applying changes. Unfortunately, modern architectural features make this approach unsound. Statistically sound evaluation requires multiple samples to test whether one can or cannot (with high confidence) reject the null hypothesis that results are the same before and after. However, caches and branch predictors make performance dependent on machine-specific parameters and the exact layout of code, stack frames, and heap objects. A single binary constitutes just one sample from the space of program layouts, regardless of the number of runs. Since compiler optimizations and code changes also alter layout, it is currently impossible to distinguish the impact of an optimization from that of its layout effects. This talk presents Stabilizer, a system that enables the use of the powerful statistical techniques required for sound performance evaluation on modern architectures. Stabilizer forces executions to sample the space of memory configurations by repeatedly re- randomizing layouts of code, stack, and heap objects at runtime. Stabilizer thus makes it possible to control for layout effects. Re-randomization also ensures that layout effects follow a Gaussian distribution, enabling the use of statistical tests like ANOVA. We demonstrate Stabilizer�s efficiency ( 7% median overhead) and its effectiveness by evaluating the impact of LLVM�s optimizations on the SPEC CPU2006 benchmark suite. We find that, while -O2 has a significant impact relative to -O1, the performance impact of -O3 over -O2 optimizations is indistinguishable from random noise. Stabilizer is available for download at http://stabilizer-tool.org.




Other Videos By Microsoft Research


2016-07-26Learning to Understand Natural Language in Physically-Grounded Environments
2016-07-26Frontiers of Accessibility: From the Body to the Mind, the Heart, and the Soul
2016-07-26Analyzing neurological disorders using functional and structural brain imaging data
2016-07-26Collaborative, Large-Scale Data Analytics and Visualization with Python
2016-07-26Gap Probabilities for Zeroes of Stationary Gaussian Functions
2016-07-26Random Walks on Groups and the Kaimanovich-Vershik Conjecture for Lamplighter Groups
2016-07-26Sensing without Sensors
2016-07-26Optimal Falsifications for Cyber-Physical Systems using Trajectory Splicing
2016-07-26A Sensor Fusion Approach towards Gesture Recognition on the Wearable Ring Form Factor
2016-07-26Digital Traces in Online Places: Methods, Software, and Applications for Social Behavioral Research
2016-07-26Stabilizer: Statistically Sound Performance Evaluation
2016-07-26Revenue maximization and prophet inequalities
2016-07-26On the Number of Matroids
2016-07-26RealTime Collaborative Analysis with (Almost) Pure SQL: A Case Study in Biogeochemical Oceanography
2016-07-26Who is Afraid of Vectors�Optimizing Cryptography Using SSE, AVX, NEON, and Co.
2016-07-26Programming with People: Integrating Human-Based and Digital Computation
2016-07-26ISHI Connects Us: Social Gaming with the Skype Team
2016-07-26Monitoring the Snowpack in Remote, Ungauged Mountains from Satellite and Computers
2016-07-26A Logical Revolution
2016-07-26Online Node-weighted Steiner Forest and Extensions
2016-07-26Optimal Pairings on Abelian Varieties with Theta Functions



Tags:
microsoft research