Write a Blog >>
Thu 22 Jun 2017 14:55 - 15:20 at Auditorium, Vertex Building - Implementation Chair(s): Tobias Wrigstad

Managed language platforms such as the Java Virtual Machine or the Common Language Runtime rely on a dynamic compiler to achieve high performance. Besides making optimization decisions based on the actual program execution and the underlying hardware platform, a dynamic compiler is also in an ideal position to perform speculative optimizations. However, these tend to increase the compilation costs, because unsuccessful speculations trigger deoptimization and recompilation of the affected parts of the program, wasting previous work. Even though speculative optimizations are widely used, the costs of these optimizations in terms of extra compilation work has not been previously studied. In this paper, we analyze the behavior of the Graal dynamic compiler integrated in Oracle’s Hotspot Virtual Machine. We focus on situations which cause program execution to switch from machine code to the interpreter, and compare application performance using three different deoptimization strategies which influence the amount of extra compilation work done by Graal. Using an adaptive deoptimization strategy, we managed to improve the average start-up performance of benchmarks from the DaCapo, ScalaBench, and Octane benchmark suites, mostly by avoiding wasted compilation work. On a single-core system, we observed an average speed-up of 6.4% for the DaCapo and ScalaBench workloads, and a speed-up of 5.1% for the Octane workloads; the improvement decreases with an increasing number of available CPU cores. We also find that the choice of a deoptimization strategy has negligible impact on steady-state performance. This indicates that the cost of speculation matters mainly during start-up, where it can disturb the delicate balance between executing the program and the compiler, but is quickly amortized in steady state.

Thu 22 Jun

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

13:40 - 15:20
ImplementationECOOP Research Papers at Auditorium, Vertex Building
Chair(s): Tobias Wrigstad Uppsala University
13:40
25m
Talk
Parallelizing Julia with a Non-invasive DSL
ECOOP Research Papers
Todd A. Anderson , Hai Liu Intel Labs, Lindsey Kuper Intel Labs, Ehsan Totoni Intel Labs, Jan Vitek Northeastern University, Tatiana Shpeisman Intel Labs
Link to publication Media Attached
14:05
25m
Talk
Interprocedural Specialization of Higher-Order Dynamic Languages Without Static Analysis
ECOOP Research Papers
Baptiste Saleil , Marc Feeley Université de Montréal
Link to publication Media Attached
14:30
25m
Talk
Compiling tree transforms to operate on packed representations
ECOOP Research Papers
Michael Vollmer Indiana University, USA, Sarah Spall Indiana University, Buddhika Chamith Indiana University, Laith Sakka , Milind Kulkarni Purdue University, Sam Tobin-Hochstadt Indiana University, Ryan R. Newton Indiana University
Link to publication Media Attached
14:55
25m
Talk
An Empirical Study on Deoptimization in the Graal Compiler
ECOOP Research Papers
Yudi Zheng University of Lugano, Lubomír Bulej Charles University, Walter Binder University of Lugano
Link to publication Media Attached