Fri 30 Oct 2015 10:52 - 11:15 at Grand Station 1 - 9. Compilation & Dynamic Analysis Chair(s): Frank Tip

Performance bugs are a prevalent problem and recent research proposes various techniques to identify such bugs. This paper addresses a kind of performance problem that often is easy to address but difficult to identify: redundant computations that may be avoided by reusing already computed results for particular inputs, a technique called memoization. To help developers find and use memoization opportunities, we present MemoizeIt, a dynamic analysis that identifies methods that repeatedly perform the same computation. The key idea is to compare inputs and outputs of method calls in a scalable yet precise way. To avoid the overhead of comparing objects at all method invocations in detail, MemoizeIt first compares objects without following any references and iteratively increases the depth of exploration while shrinking the set of considered methods. After each iteration, the approach ignores methods that cannot benefit from memoization, allowing it to analyze calls to the remaining methods in more detail. For every memoization opportunity that MemoizeIt detects, it provides hints on how to implement memoization, making it easy for the developer to fix the performance issue. Applying MemoizeIt to eleven real-world Java programs reveals nine profitable memoization opportunities, most of which are missed by traditional CPU time profilers, conservative compiler optimizations, and other existing approaches for finding performance bugs. Adding memoization as proposed by MemoizeIt leads to statistically significant speedups by factors between 1.04x and 12.93x.

Fri 30 Oct

Displayed time zone: Eastern Time (US & Canada) change

10:30 - 12:00
9. Compilation & Dynamic AnalysisOOPSLA at Grand Station 1
Chair(s): Frank Tip Samsung Research America
10:30
22m
Talk
Runtime Pointer DisambiguationOOPSLA Artifact
OOPSLA
Pericles Rafael Alves Federal University of Minas Gerais, Brazil, Fabian Gruber INRIA, France, Johannes Doerfert Saarland University, Alexandros Labrineas INRIA, France, Tobias Grosser ETH Zurich, Switzerland, Fabrice Rastello INRIA, France, Fernando Magno Quintão Pereira Federal University of Minas Gerais, Brazil
Link to publication
10:52
22m
Talk
Performance Problems You Can Fix: A Dynamic Analysis of Memoization OpportunitiesOOPSLA Artifact
OOPSLA
Luca Della Toffola ETH Zurich, Switzerland, Michael Pradel TU Darmstadt, Germany, Thomas Gross ETH Zurich, Switzerland
DOI
11:15
22m
Talk
RAIVE: Runtime Assessment of Floating-Point Instability by Vectorization
OOPSLA
Wen-Chuan Lee Purdue University, USA, Tao Bao Purdue University, USA, Yunhui Zheng IBM Research, Xiangyu Zhang Purdue University, USA, Keval Vora University of California at Riverside, USA, Rajiv Gupta University of California at Riverside, USA
DOI
11:37
22m
Talk
Automated Backward Error Analysis for Numerical Code
OOPSLA
Zhoulai Fu University of California at Davis, USA, Zhaojun Bai University of California at Davis, USA, Zhendong Su University of California at Davis, USA
DOI