auto tuning hotspot jvm using opentuner
play

Auto-tuning HotSpot JVM using OpenTuner OpenTuner Workshop - PowerPoint PPT Presentation

Auto-tuning HotSpot JVM using OpenTuner OpenTuner Workshop International Symposium on Code Generation and Optimization 2015 Milinda Fernando (CSE,Univ. of Moratuwa) Tharindu Rusira (CSE, Univ. of Moratuwa) Chalitha Perera (CSE, Univ. of


  1. Auto-tuning HotSpot JVM using OpenTuner OpenTuner Workshop International Symposium on Code Generation and Optimization 2015 Milinda Fernando (CSE,Univ. of Moratuwa) Tharindu Rusira (CSE, Univ. of Moratuwa) Chalitha Perera (CSE, Univ. of Moratuwa) Chamara Philips (CSE, Univ. of Moratuwa) Prof. Sanath Jayasena (CSE, Univ. of Moratuwa) Prof. Saman Amarasinghe (CSAIL, MIT)

  2. Motivation ● Java Virtual machine is a complex piece of Software ● Responsible for providing execution environment for Java programs ● What if the JVM can execute Java applications better (faster?)

  3. JVM and Complexity ● HotSpot JVM ● More than 600 tunable flags and parameters ● How to handle a configuration space of this scale?

  4. OpenTuner [1] [1] J. Ansel, S. Kamil, K. Veeramachaneni, U.-M. O'Reilly and S. Amarasinghe, "OpenTuner: An Extensible Framework for Program Autotuning," in MIT CSAIL Technical Report MIT-CSAIL-TR-2013-026, November 1, 2013. ● [1] provides results for a number of successful case studies ● GCC/G++ auto-tuner inspired a solution for JVM auto-tuning ● Multiple search techniques ● Evolutionary algorithms allow to reach optima aggressively in non-trivial configuration landscapes ● works best with massive search spaces and manages computational complexity really well

  5. Configuration Manipulator Used to define the configuration space def m ani pul ator ( sel f ) : m = m ani pul at or . Confi gur at i onM ani pul at or ( ) f or fl ag_set i n sel f . bool _fl ags: f or fl ag i n fl ag_set : m . add_par am et er ( m ani pul at or . Enum Par am et er ( fl ag, [ ' on' , ' off ' ] ) ) f or fl ag_set i n sel f . par am _fl ags: f or fl ag i n fl ag_set : val ue = fl ag_set [ fl ag] i f ( val ue[ ' m i n' ] > = val ue[ ' m ax' ] ) : m . add_par am et er ( m ani pul at or . I nt eger Par am et er ( val ue[ ' fl agnam e' ] , val ue[ ' m ax' ] , val ue[ ' m i n' ] ) ) el se : m . add_par am et er ( m ani pul at or . I nt eger Par am et er ( val ue[ ' fl agnam e' ] , val ue[ ' m i n' ] , val ue[ ' m ax' ] ) return m

  6. Run function Measures the quality (fitness) of a given configuration. Eg. ● For SPECjvm2008, operations per minute (ops/m) ● For DaCapo, execution time in ms

  7. JVM Flag Hierarchy JVM flags ByteCode CodeCache Compilation Interpreter DeOptimization GC Memory Priorities Temporary if (TieredCompilation) == TRUE Throughput Serial CMS G1 Collector TieredCompilation + C1 Common C2 ParallelOld Parallel 7

  8. JVM Tuner

  9. Performance Improvement of SPECjvm2008 Startup Benchmarks

  10. Performance Improvement of Dacapo Benchmarks

  11. What happens to the JVM when auto-tuned? ● Observations on heap usage, compilation and class loading before and after tuning ● Compilation rate has a major impact on performance DaCapo pmd benchmark CR (38.73%) DaCapo h2 benchmark CR (5.76%)

  12. Thank You

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend