Adaptive Code Unloading for Resource-Constrained JVMs

Slides:



Advertisements
Similar presentations
IBM JIT Compilation Technology AOT Compilation in a Dynamic Environment for Startup Time Improvement Kenneth Ma Marius Pirvu Oct. 30, 2008.
Advertisements

Java Implementation Arthur Sale & Saeid Nooshabadi The background to a Large Grant ARC Application.
Resurrector: A Tunable Object Lifetime Profiling Technique Guoqing Xu University of California, Irvine OOPSLA’13 Conference Talk 1.
By Jacob SeligmannSteffen Grarup Presented By Leon Gendler Incremental Mature Garbage Collection Using the Train Algorithm.
Microarchitectural Characterization of Production JVMs and Java Workload work in progress Jungwoo Ha (UT Austin) Magnus Gustafsson (Uppsala Univ.) Stephen.
Online Performance Auditing Using Hot Optimizations Without Getting Burned Jeremy Lau (UCSD, IBM) Matthew Arnold (IBM) Michael Hind (IBM) Brad Calder (UCSD)
The Use of Traces for Inlining in Java Programs Borys J. Bradel Tarek S. Abdelrahman Edward S. Rogers Sr.Department of Electrical and Computer Engineering.
Aarhus University, 2005Esmertec AG1 Implementing Object-Oriented Virtual Machines Lars Bak & Kasper Lund Esmertec AG
Chia-Yen Hsieh Laboratory for Reliable Computing Microarchitecture-Level Power Management Iyer, A. Marculescu, D., Member, IEEE IEEE Transaction on VLSI.
Phase-Based Program Sampling Using Phoenix Chandra Krintz University of California, Santa Barbara Microsoft Faculty Summit July, 2005.
Dynamic Tainting for Deployed Java Programs Du Li Advisor: Witawas Srisa-an University of Nebraska-Lincoln 1.
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
1 Utilizing Field Usage Patterns for Java Heap Space Optimization Z. Guo, N. Amaral, D. Szafron and Y. Wang Department of Computing Science University.
1 © 1999 Citrix Systems Inc Java on Nemesis Tim Harris.
1 Software Testing and Quality Assurance Lecture 31 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
Page 1 © 2001 Hewlett-Packard Company Tools for Measuring System and Application Performance Introduction GlancePlus Introduction Glance Motif Glance Character.
CSc 453 Interpreters & Interpretation Saumya Debray The University of Arizona Tucson.
Exploiting Prolific Types for Memory Management and Optimizations By Yefim Shuf et al.
Adaptive Optimization in the Jalapeño JVM M. Arnold, S. Fink, D. Grove, M. Hind, P. Sweeney Presented by Andrew Cove Spring 2006.
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2009 Dynamic Compilation II John Cavazos University.
Component-Level Energy Consumption Estimation for Distributed Java-Based Software Systems Sam Malek George Mason University Chiyoung Seo Yahoo! Nenad Medvidovic.
P ARALLEL P ROCESSING I NSTITUTE · F UDAN U NIVERSITY 1.
JOP: A Java Optimized Processor for Embedded Real-Time Systems Martin Schöberl.
WebSphere Performance Drivers William R. Sullivan, P.E. CTO WHAM Engineering & Software.
Adaptive Optimization in the Jalapeño JVM Matthew Arnold Stephen Fink David Grove Michael Hind Peter F. Sweeney Source: UIUC.
Lecture 10 : Introduction to Java Virtual Machine
Introduction to the Java Virtual Machine 井民全. JVM (Java Virtual Machine) the environment in which the java programs execute The specification define an.
1 Introduction to JVM Based on material produced by Bill Venners.
P ath & E dge P rofiling Michael Bond, UT Austin Kathryn McKinley, UT Austin Continuous Presented by: Yingyi Bu.
Impact of Java Compressed Heap on Mobile/Wireless Communication Mayumi KATO and Chia-Tien Dan Lo (itcc’05) Department of Computer Science, University of.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Buffered dynamic run-time profiling of arbitrary data for Virtual Machines which employ interpreter and Just-In-Time (JIT) compiler Compiler workshop ’08.
1 Fast and Efficient Partial Code Reordering Xianglong Huang (UT Austin, Adverplex) Stephen M. Blackburn (Intel) David Grove (IBM) Kathryn McKinley (UT.
Dynamic Object Sampling for Pretenuring Maria Jump Department of Computer Sciences The University of Texas at Austin Stephen M. Blackburn.
1 Tuning Garbage Collection in an Embedded Java Environment G. Chen, R. Shetty, M. Kandemir, N. Vijaykrishnan, M. J. Irwin Microsystems Design Lab The.
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
September 11, 2003 Beltway: Getting Around GC Gridlock Steve Blackburn, Kathryn McKinley Richard Jones, Eliot Moss Modified by: Weiming Zhao Oct
Performance Comparison Xen vs. KVM vs. Native –Benchmarks: SPEC CPU2006, SPEC JBB 2005, SPEC WEB, TPC –Case studies Design instrumentations for figure.
CMP/CMT Scaling of SPECjbb2005 on UltraSPARC T1 (Niagara) Dimitris Kaseridis and Lizy K. John The University of Texas at Austin Laboratory for Computer.
CSE 598c – Virtual Machines Survey Proposal: Improving Performance for the JVM Sandra Rueda.
Combining Software and Hardware Monitoring for Improved Power and Performance Tuning Eric Chi, A. Michael Salem, and R. Iris Bahar Brown University Division.
A Region-Based Compilation Technique for a Java Just-In-Time Compiler Toshio Suganuma, Toshiaki Yasue and Toshio Nakatani Presenter: Ioana Burcea.
Vertical Profiling : Understanding the Behavior of Object-Oriented Applications Sookmyung Women’s Univ. PsLab Sewon,Moon.
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2009 Method Profiling John Cavazos University.
Profile, HAT, Wireless Toolkit’s Profile Sookmyung Women’s Univ. PSLAB Choi yoonjeong.
1 University of Maryland Using Information About Cache Evictions to Measure the Interactions of Application Data Structures Bryan R. Buck Jeffrey K. Hollingsworth.
JAVA TRAINING IN NOIDA. Introduction to Java:  Java training in noida is a general-purpose computer programming language that is concurrent, class-based,
Eliminating External Fragmentation in a Non-Moving Garbage Collector for Java Author: Fridtjof Siebert, CASES 2000 Michael Sallas Object-Oriented Languages.
Interpreted languages Jakub Yaghob
Introduction to the CVM and the Timesys RI
Java 9: The Quest for Very Large Heaps
Compositional Pointer and Escape Analysis for Java Programs
CS 153: Concepts of Compiler Design November 28 Class Meeting
Online Subpath Profiling
Runtime Analysis of Hotspot Java Virtual Machine
Improving java performance using Dynamic Method Migration on FPGAs
The Simplest Heuristics May Be The Best in Java JIT Compilers
Department of Computer Science University of California, Santa Barbara
“just-in-time” compilation (JIT) technique prepared by - Harshada Hole
David F. Bacon, Perry Cheng, and V.T. Rajan
Mark Claypool and Jonathan Tanner Computer Science Department
CSc 453 Interpreters & Interpretation
Inlining and Devirtualization Hal Perkins Autumn 2011
Adaptive Optimization in the Jalapeño JVM
José A. Joao* Onur Mutlu‡ Yale N. Patt*
Department of Computer Science University of California, Santa Barbara
Garbage Collection Advantage: Improving Program Locality
Interpreting Java Program Runtimes
CSc 453 Interpreters & Interpretation
JIT Compiler Design Maxine Virtual Machine Dhwani Pandya
Presentation transcript:

Adaptive Code Unloading for Resource-Constrained JVMs ACM SIGPLAN, 2004 Presented by Mithuna Soundararaj 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln Outline Introduction Motivation and Contributions Compile-only and Interpreter-only JVM Code Unloading What to Unload? When to Unload? Results 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln Introduction Java Virtual machine extension for adaptive code unloading. Reduces memory requirement imposed by compile-only JVMs. The extension feature, an unloader uses execution behavior to adaptively determine *when* and *what* code to unload. Unloading strategies used reduces the code size, in turn reducing the execution time and memory. 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln Motivation To reduce the overhead of memory consumed by compiled code which increases the cost of memory management. To adaptively balance not storing any code and caching all generated code according to the dynamic memory availability. 12/2/2018 University of Nebraska-Lincoln

Compile-only Vs Interpreter JVM Compile-only JVM -Uses device resources more efficiently. -Higher quality code. -Code reuse and optimization. Interpreter-only JVM -Simple to interpret. -No memory overhead 12/2/2018 University of Nebraska-Lincoln

Code Unloading opportunities Large amount of executed code used only during program start up( initial 10% of execution time). Code that remains in the system and is never invoked after start up.(shorter lifetimes). Long-lived methods executed in-frequently during their lifetime. 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln Code Unloading To exploit the available code unloading opportunities and to relieve the memory pressure imposed by compile-only JVMs, they have developed an extensible framework for the implementation of strategies that decide -What to unload? -When to unload? -Balance between memory pressure and recompilation overhead. 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln What to Unload? Predicting methods which are unlikely to be invoked in the future. Monitor the execution to identify the methods that have not been recently invoked by -Online eXhaustive profiling (OnX) -Online Sample-based profiling (OnS) -Offline exhaustive profiling (Off) -No profiling (NP). 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln What strategies Online eXhaustive profiling(OnX) Compiler instruments methods setting a mark bit to one every time a method is invoked. Online Sample-Based profiling(OnS) Sets the mark bits of the two methods on the top of the invocation stack. Offline Exhaustive Profiling(Off) To analyze the behavior of the methods offline No Profiling unload all methods that are not currently on the run time stack when unloading occurs. 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln When to unload? Timer Triggered Approach Garbage Collection triggered Strategy. Maximum Call Times Triggered(MCT). Code Cache Size Triggered(CS). 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln When Strategies Timer Triggered Approach. Unloads code at regular intervals Does not account for the dynamically changing memory availability. Approximates time using thread switch count which occurs every 10 ms. Increments count according to time spent in GC. 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln When Strategies Adaptive Garbage Collection Triggered Strategy -Unloading trigger of GC invocation count. -Frequency of code unloading dynamically adapts to resource behavior. -Unloading more frequently when memory is highly constrained but less frequent otherwise. -Memory Usage behavior is got from heap residency. -At the end of each GC cycle, resource monitor forwards the percentage of execution time that is spent in GC to the unloader so as to adjust the frequency of the unloading sessions. 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln When Strategies Maximum Call Times Triggered(MCT) -unloads a method after its final compilation. Code Cache Size Triggered -Stores native code bodies in a fixed size code cache, when cache becomes full it is unloaded. 12/2/2018 University of Nebraska-Lincoln

Unloading Optimized Code Recompiling an unloaded,previously optimized method affects the balance of re-compilation overhead and performance benefits. Strategies to handle optimized code -RO(Reload Optimized methods using the optimization hint). -EO(Exclude unloading of optimized methods) -DO(Delay unloading of optimized methods) 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln RESULTS 12/2/2018 University of Nebraska-Lincoln

Impact On Memory Footprint 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln 12/2/2018 University of Nebraska-Lincoln

Impact On Execution Performance 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln Conclusion Opportunity for dynamically unloading compiled code in JIT-based JVMs for mobile and embedded devices. Adaptively unload dead and infrequently used code to reduce memory consumed and improve performance. When memory is highly constrained,reduction in code size by 61% and execution time of 23% on an average across benchmark programs and JVM configurations. 12/2/2018 University of Nebraska-Lincoln

University of Nebraska-Lincoln Thank You 12/2/2018 University of Nebraska-Lincoln