Phase-based Adaptive Recompilation in a JVM

Size: px
Start display at page:

Download "Phase-based Adaptive Recompilation in a JVM"

Transcription

1 Phase-based Adaptive Recompilation in a JVM Dayong Gu Clark Verbrugge Sable Research Group, School of Computer Science McGill University, Montréal, Canada {dgu1, clump}@cs.mcgill.ca April 7, 2008 Sable Group, McGill University 1/33

2 Outline 1 Motivation 2 Hardware Information Analysis 3 Adaptive Recompilation 4 Conclusions and Future Work Sable Group, McGill University 2/33

3 Motivation Java Programs JVM (Virtual Hardware) Sable Group, McGill University 3/33

4 Motivation Java Programs JVM (Virtual Hardware) Real Hardware Sable Group, McGill University 4/33

5 Motivation Hardware Impact The impact of hardware on program behaviour can be significant Strong correlation exists: hardware performance program behaviour Hardware Event Counters Hardware counters widely exist in modern processors Accessible from software libs: PAPI, PMAPI,PCL,... Sable Group, McGill University 5/33

6 Motivation Hardware Impact The impact of hardware on program behaviour can be significant Strong correlation exists: hardware performance program behaviour Hardware Event Counters Hardware counters widely exist in modern processors Accessible from software libs: PAPI, PMAPI,PCL,... Use hardware event data to improve adaptive optimizations in JVM Sable Group, McGill University 5/33

7 Program Phases There are different types of program phases Sable Group, McGill University 6/33

8 Program Phases There are different types of program phases Flat Phases refer to the contiguous intervals where show a stable, flat performance on a type of sampled, profiling data Periodic Phases long term repetitions in execution, showing unstable performance but sharing similar patterns Sable Group, McGill University 6/33

9 Program Phases There are different types of program phases Flat Phases refer to the contiguous intervals where show a stable, flat performance on a type of sampled, profiling data Periodic Phases long term repetitions in execution, showing unstable performance but sharing similar patterns Detect this long term periodic phases from hardware data and employ the phase information in adaptive optimizations Sable Group, McGill University 6/33

10 Contributions Highlight the hardware impact on Java program execution Develop online pattern creation algorithm to represent hardware event Detect long term periodic phases from hardware patterns Implement an adaptive recomplication strategy using phase information Sable Group, McGill University 7/33

11 Hardware Event Data Example Hardware Event Time Sable Group, McGill University 8/33

12 Recurrent Phases Hardware Event Time Sable Group, McGill University 9/33

13 Hardware Pattern Hardware Event Time Sable Group, McGill University 10/33

14 Hardware Pattern Hardware Event Time Sable Group, McGill University 11/33

15 Hardware Pattern Hardware Event Time Sable Group, McGill University 12/33

16 Hardware Pattern Hardware Event Time Sable Group, McGill University 13/33

17 Hardware Pattern Hardware Event Time Sable Group, McGill University 14/33

18 Hardware Pattern Hardware Event Time Sable Group, McGill University 15/33

19 Pattern Building Algorithm (Simplified) Get HW data D Get the variation: D Vs former Data Yes Large enough? No Begin a new pattern building Continue the current pattern building; Add info. about D Conditions: 1. Small variations in a row 2. Pattern reaches the max length 3. Meet a more important variation (stop in the middle) Pattern Finish? Yes Report pattern No Sable Group, McGill University 16/33

20 Pattern Building Example (1) Hardware Data Sable Group, McGill University 17/33

21 Pattern Building Example (1) Hardware Data (2) Variation Sable Group, McGill University 17/33

22 Pattern Building Example (1) Hardware Data (3) Level Lv3 Lv2 Lv1 Lv (2) Variation Sable Group, McGill University 17/33

23 Pattern Building Example (1) Hardware Data (3) Level Lv3 Lv2 Lv1 Lv (2) Variation (4) Pattern Lv3 Lv2 Lv1 Lv Sable Group, McGill University 17/33

24 Pattern Analysis Patterns are stored and analyzed The number of occurrences determines the hotness of a pattern The hottest pattern is used to represent the current program phase The phase information is used to archieve a better adaptive hot method recompilation strategy in Jikes RVM Sable Group, McGill University 18/33

25 Recompilation in Jikes RVM Get method samples Compute the Past time in a method Opt. Level Opt0 Opt1 Opt2 Opt3 Estimate the compilation cost C i to optimization level i Samples Recompile to level i, if (SpeedupRate i Past) > C i Sable Group, McGill University 19/33

26 Recompilation in Jikes RVM Get method samples Compute the Past time in a method Opt. Level Opt0 Opt1 Opt2 Opt3 Estimate the compilation cost C i to optimization level i Samples Recompile to level i, if (SpeedupRate i Past) > C i Assume Future Past Sable Group, McGill University 19/33

27 Optimization Opportunity 4 3 Opt0 Opt1 Opt2 Opt3 Opt. Level Samples Sable Group, McGill University 20/33

28 Optimization Opportunity 4 3 Opt. Level Samples Sable Group, McGill University 21/33

29 Optimization Opportunity 4 3 Opt. Level Samples Sable Group, McGill University 22/33

30 Optimization Opportunity Recompilation is not free, cannot always be aggressive Sable Group, McGill University 23/33

31 Optimization Opportunity Recompilation is not free, cannot always be aggressive Our approach: Program Sampled Methods Hardware Event Recompilation State Behaviour Aggressiveness New The Beginners No recurrence Low of patterns Young Important methods Recurrences High of patterns Mature Optimized methods Less fresh patterns Moderate Less important methods More old patterns Rejuvenated New important More fresh High methods patterns again Sable Group, McGill University 23/33

32 Optimization Opportunity Recompilation is not free, cannot always be aggressive Our approach: Program Sampled Methods Hardware Event Recompilation State Behaviour Aggressiveness New The Beginners No recurrence Low of patterns Young Important methods Recurrences High of patterns Mature Optimized methods Less fresh patterns Moderate Less important methods More old patterns Rejuvenated New important More fresh High methods patterns again Future Past Fixed aggressiveness Adaptive aggressiveness Sable Group, McGill University 23/33

33 Optimization Opportunity Optimize code to higher levels earlier Possibly save recompilation overhead for intermediate levels Save unnecessary recompilation for the beginners Sable Group, McGill University 24/33

34 Original 4 3 Opt0 Opt1 Opt2 Opt3 Opt. Level Samples Sable Group, McGill University 25/33

35 Online Optimization 4 3 Opt. Level Samples Sable Group, McGill University 26/33

36 Offline Head Space Study 4 3 Opt. Level Samples Sable Group, McGill University 27/33

37 Experimental Set-up Benchmarks: SPECjvm98 suite Dacapo benchmarks: antlr, bloat, fop, pmd, xalan Soot and PseudoJbb Test on Athlon 1.4G, 1GB memory, Debian Linux kernel Average of the middle 11 in 15 runs Sable Group, McGill University 28/33

38 Recompilation Results Normalized execution time comp db jack javac jess mpeg mtrt rt antlr bloat fop pmd xalan soot pjbb Avg Orig Online Offline Whole Execution Time Reduction Average Up to (incl. all overhead) Offline Use training runs 8.7% 21% Online Use HW pattern info. 4.4% 18% Sable Group, McGill University 29/33

39 Whole Overhead Benchmark Overhead (%) Benchmark Overhead (%) compress 2.02 antlr 2.12 db 1.39 bloat 1.65 jack 1.71 fop 1.69 javac 1.13 pmd 1.70 jess 0.49 xalan 1.07 mpegaudio 1.76 soot 1.85 mtrt 0.82 PseudoJbb 0.77 raytrace 1.30 Average 1.43 The overhead includes all sources from hardware monitoring, pattern construction, information analysis, and building control events to adaptive engine Sable Group, McGill University 30/33

40 Conclusions Understanding repetitive program behaviour and exploring phases in program execution is important We implemented a technique for determining program phases from hardware data We applied the phase information in adaptive recomplication Hardware information can be used in a wide range of areas Runtime profiling, selecting GC points Program understanding, system reconfiguration, instruction/data relocation and prefetch... Sable Group, McGill University 31/33

41 Future Work Test other hardware events/combinations Use offline analysis results for repeatable executions Attach hardware variation with software structures Advanced static analysis can be helpful Develop other adaptive applications Sable Group, McGill University 32/33

42 Thank you! Questions? Sable Group, McGill University 33/33

Phase-Based Adaptive Recompilation in a JVM

Phase-Based Adaptive Recompilation in a JVM Phase-Based Adaptive Recompilation in a JVM Dayong Gu dgu@cs.mcgill.ca School of Computer Science, McGill University Montréal, Québec, Canada Clark Verbrugge clump@cs.mcgill.ca ABSTRACT Modern JIT compilers

More information

Method-Level Phase Behavior in Java Workloads

Method-Level Phase Behavior in Java Workloads Method-Level Phase Behavior in Java Workloads Andy Georges, Dries Buytaert, Lieven Eeckhout and Koen De Bosschere Ghent University Presented by Bruno Dufour dufour@cs.rutgers.edu Rutgers University DCS

More information

Phase-based adaptive recompilation in a JVM

Phase-based adaptive recompilation in a JVM McGill University School of Computer Science Sable Research Group Phase-based adaptive recompilation in a JVM Sable Technical Report No. 27-4 Dayong Gu and Clark Verbrugge {dgu, clump}@cs.mcgill.ca May

More information

Intelligent Compilation

Intelligent Compilation Intelligent Compilation John Cavazos Department of Computer and Information Sciences University of Delaware Autotuning and Compilers Proposition: Autotuning is a component of an Intelligent Compiler. Code

More information

Adaptive Optimization using Hardware Performance Monitors. Master Thesis by Mathias Payer

Adaptive Optimization using Hardware Performance Monitors. Master Thesis by Mathias Payer Adaptive Optimization using Hardware Performance Monitors Master Thesis by Mathias Payer Supervising Professor: Thomas Gross Supervising Assistant: Florian Schneider Adaptive Optimization using HPM 1/21

More information

Using hardware data to detect repetitive program behavior

Using hardware data to detect repetitive program behavior McGill University School of Computer Science Sable Research Group Using hardware data to detect repetitive program behavior Sable Technical Report No. 2007-2 Dayong Gu and Clark Verbrugge {dgu1, clump}@cs.mcgill.ca

More information

Towards Parallel, Scalable VM Services

Towards Parallel, Scalable VM Services Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th Century Simplistic Hardware View Faster Processors

More information

Detecting repetitive program behaviour from hardware data

Detecting repetitive program behaviour from hardware data Detecting repetitive program behaviour from hardware data Dayong Gu Clark Verbrugge School of Computer Science, McGill University Montréal, Québec, Canada H3A 2A7 {dgu1,clump}@cs.mcgill.ca Abstract Detecting

More information

Optimising Multicore JVMs. Khaled Alnowaiser

Optimising Multicore JVMs. Khaled Alnowaiser Optimising Multicore JVMs Khaled Alnowaiser Outline JVM structure and overhead analysis Multithreaded JVM services JVM on multicore An observational study Potential JVM optimisations Basic JVM Services

More information

Java Performance Evaluation through Rigorous Replay Compilation

Java Performance Evaluation through Rigorous Replay Compilation Java Performance Evaluation through Rigorous Replay Compilation Andy Georges Lieven Eeckhout Dries Buytaert Department Electronics and Information Systems, Ghent University, Belgium {ageorges,leeckhou}@elis.ugent.be,

More information

Free-Me: A Static Analysis for Automatic Individual Object Reclamation

Free-Me: A Static Analysis for Automatic Individual Object Reclamation Free-Me: A Static Analysis for Automatic Individual Object Reclamation Samuel Z. Guyer, Kathryn McKinley, Daniel Frampton Presented by: Jason VanFickell Thanks to Dimitris Prountzos for slides adapted

More information

JIT Compilation Policy for Modern Machines

JIT Compilation Policy for Modern Machines JIT Compilation Policy for Modern Machines Prasad A. Kulkarni Department of Electrical Engineering and Computer Science, University of Kansas prasadk@ku.edu Abstract Dynamic or Just-in-Time (JIT) compilation

More information

How s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services

How s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services How s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th

More information

Jazz: A Tool for Demand-Driven Structural Testing

Jazz: A Tool for Demand-Driven Structural Testing Jazz: A Tool for Demand-Driven Structural Testing J. Misurda, J. A. Clause, J. L. Reed, P. Gandra, B. R. Childers, and M. L. Soffa Department of Computer Science University of Pittsburgh Pittsburgh, Pennsylvania

More information

An Input-Centric Paradigm for Program Dynamic Optimizations

An Input-Centric Paradigm for Program Dynamic Optimizations An Input-Centric Paradigm for Program Dynamic Optimizations Kai Tian, Yunlian Jiang,, Eddy Zhang, Xipeng Shen (presenter) College of William and Mary (Published in OOPSLA 10) Program Optimizations 1950s

More information

SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1

SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1 SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine David Bélanger dbelan2@cs.mcgill.ca Sable Research Group McGill University Montreal, QC January 28, 2004 SABLEJIT: A Retargetable

More information

Swift: A Register-based JIT Compiler for Embedded JVMs

Swift: A Register-based JIT Compiler for Embedded JVMs Swift: A Register-based JIT Compiler for Embedded JVMs Yuan Zhang, Min Yang, Bo Zhou, Zhemin Yang, Weihua Zhang, Binyu Zang Fudan University Eighth Conference on Virtual Execution Environment (VEE 2012)

More information

Dynamic Selection of Application-Specific Garbage Collectors

Dynamic Selection of Application-Specific Garbage Collectors Dynamic Selection of Application-Specific Garbage Collectors Sunil V. Soman Chandra Krintz University of California, Santa Barbara David F. Bacon IBM T.J. Watson Research Center Background VMs/managed

More information

Understanding Parallelism-Inhibiting Dependences in Sequential Java

Understanding Parallelism-Inhibiting Dependences in Sequential Java Understanding Parallelism-Inhibiting Dependences in Sequential Java Programs Atanas(Nasko) Rountev Kevin Van Valkenburgh Dacong Yan P. Sadayappan Ohio State University Overview and Motivation Multi-core

More information

Limits of Parallel Marking Garbage Collection....how parallel can a GC become?

Limits of Parallel Marking Garbage Collection....how parallel can a GC become? Limits of Parallel Marking Garbage Collection...how parallel can a GC become? Dr. Fridtjof Siebert CTO, aicas ISMM 2008, Tucson, 7. June 2008 Introduction Parallel Hardware is becoming the norm even for

More information

Method-Specific Dynamic Compilation using Logistic Regression

Method-Specific Dynamic Compilation using Logistic Regression Method-Specific Dynamic Compilation using Logistic Regression John Cavazos Michael F.P. O Boyle Member of HiPEAC Institute for Computing Systems Architecture (ICSA), School of Informatics University of

More information

JOVE. An Optimizing Compiler for Java. Allen Wirfs-Brock Instantiations Inc.

JOVE. An Optimizing Compiler for Java. Allen Wirfs-Brock Instantiations Inc. An Optimizing Compiler for Java Allen Wirfs-Brock Instantiations Inc. Object-Orient Languages Provide a Breakthrough in Programmer Productivity Reusable software components Higher level abstractions Yield

More information

A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler

A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu and Toshio Nakatani IBM Research Tokyo IBM Research T.J. Watson Research Center April

More information

Identifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters. Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo

Identifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters. Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo Identifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo June 15, 2012 ISMM 2012 at Beijing, China Motivation

More information

Object Co-location and Memory Reuse for Java Programs

Object Co-location and Memory Reuse for Java Programs Object Co-location and Memory Reuse for Java Programs ZOE C.H. YU, FRANCIS C.M. LAU, and CHO-LI WANG Department of Computer Science The University of Hong Kong Technical Report (TR-00-0) May 0, 00; Minor

More information

The Segregated Binary Trees: Decoupling Memory Manager

The Segregated Binary Trees: Decoupling Memory Manager The Segregated Binary Trees: Decoupling Memory Manager Mehran Rezaei Dept. of Electrical and Computer Engineering University of Alabama in Huntsville Ron K. Cytron Department of Computer Science Washington

More information

Efficient Runtime Tracking of Allocation Sites in Java

Efficient Runtime Tracking of Allocation Sites in Java Efficient Runtime Tracking of Allocation Sites in Java Rei Odaira, Kazunori Ogata, Kiyokuni Kawachiya, Tamiya Onodera, Toshio Nakatani IBM Research - Tokyo Why Do You Need Allocation Site Information?

More information

Proceedings of the 2 nd Java TM Virtual Machine Research and Technology Symposium (JVM '02)

Proceedings of the 2 nd Java TM Virtual Machine Research and Technology Symposium (JVM '02) USENIX Association Proceedings of the 2 nd Java TM Virtual Machine Research and Technology Symposium (JVM '02) San Francisco, California, USA August 1-2, 2002 THE ADVANCED COMPUTING SYSTEMS ASSOCIATION

More information

MicroPhase: An Approach to Proactively Invoking Garbage Collection for Improved Performance

MicroPhase: An Approach to Proactively Invoking Garbage Collection for Improved Performance MicroPhase: An Approach to Proactively Invoking Garbage Collection for Improved Performance Feng Xian, Witawas Srisa-an, and Hong Jiang Department of Computer Science & Engineering University of Nebraska-Lincoln

More information

Averroes: Letting go of the library!

Averroes: Letting go of the library! Workshop on WALA - PLDI 15 June 13th, 2015 public class HelloWorld { public static void main(string[] args) { System.out.println("Hello, World!"); 2 public class HelloWorld { public static void main(string[]

More information

IBM Research Report. Efficient Memory Management for Long-Lived Objects

IBM Research Report. Efficient Memory Management for Long-Lived Objects RC24794 (W0905-013) May 7, 2009 Computer Science IBM Research Report Efficient Memory Management for Long-Lived Objects Ronny Morad 1, Martin Hirzel 2, Elliot K. Kolodner 1, Mooly Sagiv 3 1 IBM Research

More information

Phases in Branch Targets of Java Programs

Phases in Branch Targets of Java Programs Phases in Branch Targets of Java Programs Technical Report CU-CS-983-04 ABSTRACT Matthias Hauswirth Computer Science University of Colorado Boulder, CO 80309 hauswirt@cs.colorado.edu Recent work on phase

More information

Myths and Realities: The Performance Impact of Garbage Collection

Myths and Realities: The Performance Impact of Garbage Collection Myths and Realities: The Performance Impact of Garbage Collection Tapasya Patki February 17, 2011 1 Motivation Automatic memory management has numerous software engineering benefits from the developer

More information

Lu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine

Lu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine Lu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine 2015-07-09 Inefficient code regions [G. Jin et al. PLDI 2012] Inefficient code

More information

Improving Virtual Machine Performance Using a Cross-Run Profile Repository

Improving Virtual Machine Performance Using a Cross-Run Profile Repository Improving Virtual Machine Performance Using a Cross-Run Profile Repository Matthew Arnold Adam Welc V.T. Rajan IBM T.J. Watson Research Center {marnold,vtrajan}@us.ibm.com Purdue University welc@cs.purdue.edu

More information

The DaCapo Benchmarks: Java Benchmarking Development and Analysis

The DaCapo Benchmarks: Java Benchmarking Development and Analysis The DaCapo Benchmarks: Java Benchmarking Development and Analysis Stephen M Blackburn αβ, Robin Garner β, Chris Hoffmann γ, Asjad M Khan γ, Kathryn S McKinley δ, Rotem Bentzur ε, Amer Diwan ζ, Daniel Feinberg

More information

Probabilistic Calling Context

Probabilistic Calling Context Probabilistic Calling Context Michael D. Bond Kathryn S. McKinley University of Texas at Austin Why Context Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdbcinterface.execquery():213

More information

Immix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance

Immix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance Immix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance Stephen M. Blackburn Australian National University Steve.Blackburn@anu.edu.au Kathryn S. McKinley

More information

Static Java Program Features for Intelligent Squash Prediction

Static Java Program Features for Intelligent Squash Prediction Static Java Program Features for Intelligent Squash Prediction Jeremy Singer,, Adam Pocock, Mikel Lujan, Gavin Brown, Nikolas Ioannou, Marcelo Cintra Thread-level Speculation... Aim to use parallel multi-core

More information

Dynamic Analysis of Inefficiently-Used Containers

Dynamic Analysis of Inefficiently-Used Containers Dynamic Analysis of Inefficiently-Used Containers Shengqian (Victor) Yang 1 Dacong Yan 1 Guoqing Xu 2 Atanas Rountev 1 1 Ohio State University 2 University of California, Irvine PRESTO: Program Analyses

More information

Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces

Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces Byeongcheol Lee Ben Wiedermann Mar>n Hirzel Robert Grimm Kathryn S. McKinley B. Lee, B. Wiedermann, M. Hirzel, R. Grimm, and K.

More information

Context-sensitive points-to analysis: is it worth it?

Context-sensitive points-to analysis: is it worth it? McGill University School of Computer Science Sable Research Group Context-sensitive points-to analysis: is it worth it? Sable Technical Report No. 2005-2 Ondřej Lhoták Laurie Hendren October 21, 2005 w

More information

Cross-Layer Memory Management to Reduce DRAM Power Consumption

Cross-Layer Memory Management to Reduce DRAM Power Consumption Cross-Layer Memory Management to Reduce DRAM Power Consumption Michael Jantz Assistant Professor University of Tennessee, Knoxville 1 Introduction Assistant Professor at UT since August 2014 Before UT

More information

Using Prefetching to Improve Reference-Counting Garbage Collectors

Using Prefetching to Improve Reference-Counting Garbage Collectors Using Prefetching to Improve Reference-Counting Garbage Collectors Harel Paz 1 and Erez Petrank 2 1 IBM Haifa Research Laboratory, Mount Carmel, Haifa 31905, ISRAEL. 2 Microsoft Research, One Microsoft

More information

The VMKit project: Java (and.net) on top of LLVM

The VMKit project: Java (and.net) on top of LLVM The VMKit project: Java (and.net) on top of LLVM Nicolas Geoffray Université Pierre et Marie Curie, France nicolas.geoffray@lip6.fr What is VMKit? Glue between existing VM components LLVM, GNU Classpath,

More information

Performance Potential of Optimization Phase Selection During Dynamic JIT Compilation

Performance Potential of Optimization Phase Selection During Dynamic JIT Compilation Performance Potential of Optimization Phase Selection During Dynamic JIT Compilation Michael R. Jantz Prasad A. Kulkarni Electrical Engineering and Computer Science, University of Kansas {mjantz,kulkarni}@ittc.ku.edu

More information

Eliminating Exception Constraints of Java Programs for IA-64

Eliminating Exception Constraints of Java Programs for IA-64 Eliminating Exception Constraints of Java Programs for IA-64 Kazuaki Ishizaki, Tatsushi Inagaki, Hideaki Komatsu,Toshio Nakatani IBM Research, Tokyo Research

More information

Using Prefetching to Improve Reference-Counting Garbage Collectors

Using Prefetching to Improve Reference-Counting Garbage Collectors Using Prefetching to Improve Reference-Counting Garbage Collectors Harel Paz 1, and Erez Petrank 2, 1 IBM Haifa Research Laboratory, Mount Carmel, Haifa 31905, Israel paz@il.ibm.com 2 Microsoft Research,

More information

Continuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat

Continuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat Continuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat Rei Odaira, Toshio Nakatani IBM Research Tokyo ASPLOS 2012 March 5, 2012 Many Wasteful Objects Hurt Performance.

More information

Java Heap Resizing From Hacked-up Heuristics to Mathematical Models. Jeremy Singer and David R. White

Java Heap Resizing From Hacked-up Heuristics to Mathematical Models. Jeremy Singer and David R. White Java Heap Resizing From Hacked-up Heuristics to Mathematical Models Jeremy Singer and David R. White Outline Background Microeconomic Theory Heap Sizing as a Control Problem Summary Outline Background

More information

Just-In-Time Compilers & Runtime Optimizers

Just-In-Time Compilers & Runtime Optimizers COMP 412 FALL 2017 Just-In-Time Compilers & Runtime Optimizers Comp 412 source code IR Front End Optimizer Back End IR target code Copyright 2017, Keith D. Cooper & Linda Torczon, all rights reserved.

More information

Adaptive Multi-Level Compilation in a Trace-based Java JIT Compiler

Adaptive Multi-Level Compilation in a Trace-based Java JIT Compiler Adaptive Multi-Level Compilation in a Trace-based Java JIT Compiler Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu and Toshio Nakatani IBM Research Tokyo IBM Research T.J. Watson Research Center October

More information

Intelligent Selection of Application-Specific Garbage Collectors

Intelligent Selection of Application-Specific Garbage Collectors Intelligent Selection of Application-Specific Garbage Collectors Jeremy Singer Gavin Brown Ian Watson University of Manchester, UK {jsinger,gbrown,iwatson}@cs.man.ac.uk John Cavazos University of Edinburgh,

More information

VIProf: A Vertically Integrated Full-System Profiler

VIProf: A Vertically Integrated Full-System Profiler VIProf: A Vertically Integrated Full-System Profiler NGS Workshop, April 2007 Hussam Mousa Chandra Krintz Lamia Youseff Rich Wolski RACELab Research Dynamic software adaptation As program behavior or resource

More information

Context-sensitive points-to analysis: is it worth it?

Context-sensitive points-to analysis: is it worth it? Context-sensitive points-to analysis: is it worth it? Ondřej Lhoták 1,2 and Laurie Hendren 2 olhotak@uwaterloo.ca hendren@sable.mcgill.ca 1 School of Computer Science, University of Waterloo, Waterloo,

More information

Pointer Analysis in the Presence of Dynamic Class Loading

Pointer Analysis in the Presence of Dynamic Class Loading Pointer Analysis in the Presence of Dynamic Class Loading Martin Hirzel, Amer Diwan University of Colorado at Boulder Michael Hind IBM T.J. Watson Research Center 1 Pointer analysis motivation Code a =

More information

Mixed Mode Execution with Context Threading

Mixed Mode Execution with Context Threading Mixed Mode Execution with Context Threading Mathew Zaleski, Marc Berndl, Angela Demke Brown University of Toronto {matz,berndl,demke}@cs.toronto.edu (CASCON 2005, Oct 19/2005.) Overview Introduction Background:

More information

The Design, Implementation, and Evaluation of Adaptive Code Unloading for Resource-Constrained Devices

The Design, Implementation, and Evaluation of Adaptive Code Unloading for Resource-Constrained Devices The Design, Implementation, and Evaluation of Adaptive Code Unloading for Resource-Constrained Devices LINGLI ZHANG and CHANDRA KRINTZ University of California, Santa Barbara Java Virtual Machines (JVMs)

More information

Design, Implementation, and Evaluation of a Compilation Server

Design, Implementation, and Evaluation of a Compilation Server Design, Implementation, and Evaluation of a Compilation Server Technical Report CU--978-04 HAN B. LEE University of Colorado AMER DIWAN University of Colorado and J. ELIOT B. MOSS University of Massachusetts

More information

Z-Rays: Divide Arrays and Conquer Speed and Flexibility

Z-Rays: Divide Arrays and Conquer Speed and Flexibility Z-Rays: Divide Arrays and Conquer Speed and Flexibility Jennifer B. Sartor Stephen M. Blackburn Daniel Frampton Martin Hirzel Kathryn S. McKinley University of Texas at Austin Australian National University

More information

Debunking Dynamic Optimization Myths

Debunking Dynamic Optimization Myths Debunking Dynamic Optimization Myths Michael Hind (Material borrowed from 3 hr PLDI 04 Tutorial by Stephen Fink, David Grove, and Michael Hind. See those slides for more details.) September 15, 2004 Future

More information

Reducing the Overhead of Dynamic Compilation

Reducing the Overhead of Dynamic Compilation Reducing the Overhead of Dynamic Compilation Chandra Krintz y David Grove z Derek Lieber z Vivek Sarkar z Brad Calder y y Department of Computer Science and Engineering, University of California, San Diego

More information

Compiler-guaranteed Safety in Code-copying Virtual Machines

Compiler-guaranteed Safety in Code-copying Virtual Machines Compiler-guaranteed Safety in Code-copying Virtual Machines Gregory B. Prokopski Clark Verbrugge School of Computer Science Sable Research Group McGill University Montreal, Canada International Conference

More information

Chip-Multithreading Systems Need A New Operating Systems Scheduler

Chip-Multithreading Systems Need A New Operating Systems Scheduler Chip-Multithreading Systems Need A New Operating Systems Scheduler Alexandra Fedorova Christopher Small Daniel Nussbaum Margo Seltzer Harvard University, Sun Microsystems Sun Microsystems Sun Microsystems

More information

Efficient Object Placement including Node Selection in a Distributed Virtual Machine

Efficient Object Placement including Node Selection in a Distributed Virtual Machine John von Neumann Institute for Computing Efficient Object Placement including Node Selection in a Distributed Virtual Machine Jose M. Velasco, David Atienza, Katzalin Olcoz, Francisco Tirado published

More information

Reducing the Overhead of Dynamic Compilation

Reducing the Overhead of Dynamic Compilation Reducing the Overhead of Dynamic Compilation Chandra Krintz David Grove Derek Lieber Vivek Sarkar Brad Calder Department of Computer Science and Engineering, University of California, San Diego IBM T.

More information

Method-Level Phase Behavior in Java Workloads

Method-Level Phase Behavior in Java Workloads Method-Level Phase Behavior in Java Workloads Andy Georges Dries Buytaert Lieven Eeckhout Koen De Bosschere Department of Electronics and Information Systems (ELIS), Ghent University St.-Pietersnieuwstraat

More information

Context Threading: A flexible and efficient dispatch technique for virtual machine interpreters

Context Threading: A flexible and efficient dispatch technique for virtual machine interpreters : A flexible and efficient dispatch technique for virtual machine interpreters Marc Berndl Benjamin Vitale Mathew Zaleski Angela Demke Brown Research supported by IBM CAS, NSERC, CITO 1 Interpreter performance

More information

Online Subpath Profiling

Online Subpath Profiling Online Subpath Profiling by David Oren A THESIS Submitted in Partial Fulfillment of the Requirements of the Degree of Master of Science in Computer Science June 2002 Advisory Committee: Yossi Matias, Thesis

More information

Mitigating the Compiler Optimization Phase-Ordering Problem using Machine Learning

Mitigating the Compiler Optimization Phase-Ordering Problem using Machine Learning Mitigating the Compiler Optimization Phase-Ordering Problem using Machine Learning Sameer Kulkarni John Cavazos University of Delaware {skulkarn,cavazos@cis.udel.edu Abstract Today s compilers have a plethora

More information

Experiences with Multi-threading and Dynamic Class Loading in a Java Just-In-Time Compiler

Experiences with Multi-threading and Dynamic Class Loading in a Java Just-In-Time Compiler , Compilation Technology Experiences with Multi-threading and Dynamic Class Loading in a Java Just-In-Time Compiler Daryl Maier, Pramod Ramarao, Mark Stoodley, Vijay Sundaresan TestaRossa JIT compiler

More information

Compiler Analyses for Improved Return Value Prediction

Compiler Analyses for Improved Return Value Prediction Compiler Analyses for Improved Return Value Prediction Christopher J.F. Pickett Clark Verbrugge {cpicke,clump}@sable.mcgill.ca School of Computer Science, McGill University Montréal, Québec, Canada H3A

More information

A Quantitative Evaluation of the Contribution of Native Code to Java Workloads

A Quantitative Evaluation of the Contribution of Native Code to Java Workloads A Quantitative Evaluation of the Contribution of Native Code to Java Workloads Walter Binder University of Lugano Switzerland walter.binder@unisi.ch Jarle Hulaas, Philippe Moret EPFL Switzerland {jarle.hulaas,philippe.moret}@epfl.ch

More information

Myths and Realities: The Performance Impact of Garbage Collection

Myths and Realities: The Performance Impact of Garbage Collection Myths and Realities: The Performance Impact of Garbage Collection Stephen M Blackburn Department of Computer Science Australian National University Canberra, ACT, 000, Australia Steve.Blackburn@cs.anu.edu.au

More information

The Garbage Collection Advantage: Improving Program Locality

The Garbage Collection Advantage: Improving Program Locality The Garbage Collection Advantage: Improving Program Locality Xianglong Huang Stephen M Blackburn Kathryn S McKinley The University of Texas at Austin Australian National University The University of Texas

More information

An Efficient Memory Management Technique That Improves Localities

An Efficient Memory Management Technique That Improves Localities An Efficient Memory Management Technique That Improves Localities Krishna Kavi Mehran Rezaei Dept. of Electrical and Computer Engineering University of Alabama in Huntsville Ron K. Cytron Department of

More information

Tolerating Memory Leaks

Tolerating Memory Leaks Tolerating Memory Leaks UT Austin Technical Report TR-07-64 December 7, 2007 Michael D. Bond Kathryn S. McKinley Department of Computer Sciences The University of Texas at Austin {mikebond,mckinley}@cs.utexas.edu

More information

Trace-based JIT Compilation

Trace-based JIT Compilation Trace-based JIT Compilation Hiroshi Inoue, IBM Research - Tokyo 1 Trace JIT vs. Method JIT https://twitter.com/yukihiro_matz/status/533775624486133762 2 Background: Trace-based Compilation Using a Trace,

More information

Replicating Real-Time Garbage Collector

Replicating Real-Time Garbage Collector Replicating Real-Time Garbage Collector Tomas Kalibera Purdue University, West Lafayette, IN 47907, USA; Charles University, Prague, 147 00, Czech Republic SUMMARY Real-time Java is becoming a viable platform

More information

Using Scratchpad to Exploit Object Locality in Java

Using Scratchpad to Exploit Object Locality in Java Using Scratchpad to Exploit Object Locality in Java Carl S. Lebsack and J. Morris Chang Department of Electrical and Computer Engineering Iowa State University Ames, IA 50011 lebsack, morris@iastate.edu

More information

Heuristics for Profile-driven Method- level Speculative Parallelization

Heuristics for Profile-driven Method- level Speculative Parallelization Heuristics for Profile-driven Method- level John Whaley and Christos Kozyrakis Stanford University Speculative Multithreading Speculatively parallelize an application Uses speculation to overcome ambiguous

More information

Ulterior Reference Counting: Fast Garbage Collection without a Long Wait

Ulterior Reference Counting: Fast Garbage Collection without a Long Wait Ulterior Reference Counting: Fast Garbage Collection without a Long Wait ABSTRACT Stephen M Blackburn Department of Computer Science Australian National University Canberra, ACT, 000, Australia Steve.Blackburn@anu.edu.au

More information

Exploiting Prolific Types for Memory Management and Optimizations

Exploiting Prolific Types for Memory Management and Optimizations Exploiting Prolific Types for Memory Management and Optimizations Yefim Shuf Manish Gupta Rajesh Bordawekar Jaswinder Pal Singh IBM T. J. Watson Research Center Computer Science Department P. O. Box 218

More information

Dynamic Profiling & Comparison of Sun Microsystems JDK1.3.1 versus the Kaffe VM APIs

Dynamic Profiling & Comparison of Sun Microsystems JDK1.3.1 versus the Kaffe VM APIs Dynamic Profiling & Comparison of Sun Microsystems JDK1.3.1 versus the VM APIs Author: Anthony Sartini Computer Engineering, Trinity College, Dublin 2, Ireland Supervisor: John Waldron Department of Computer

More information

Relative Factors in Performance Analysis of Java Virtual Machines

Relative Factors in Performance Analysis of Java Virtual Machines Relative Factors in Performance Analysis of Java Viual Machines Dayong Gu Clark Verbrugge School of Computer Science McGill University Montréal, Québec, Canada {dgu1, clump}@cs.mcgill.ca Etienne M. Gagnon

More information

Dynamic Purity Analysis for Java Programs

Dynamic Purity Analysis for Java Programs Dynamic Purity Analysis for Java Programs Haiying Xu Christopher J. F. Pickett Clark Verbrugge School of Computer Science, McGill University Montréal, Québec, Canada H3A 2A7 {hxu31,cpicke,clump}@sable.mcgill.ca

More information

Program Calling Context. Motivation

Program Calling Context. Motivation Program alling ontext Motivation alling context enhances program understanding and dynamic analyses by providing a rich representation of program location ollecting calling context can be expensive The

More information

Java without the Coffee Breaks: A Nonintrusive Multiprocessor Garbage Collector

Java without the Coffee Breaks: A Nonintrusive Multiprocessor Garbage Collector Java without the Coffee Breaks: A Nonintrusive Multiprocessor Garbage Collector David F. Bacon IBM T.J. Watson Research Center Joint work with C.R. Attanasio, Han Lee, V.T. Rajan, and Steve Smith ACM Conference

More information

Performance analysis and optimization of the Java memory system

Performance analysis and optimization of the Java memory system Retrospective Theses and Dissertations 2008 Performance analysis and optimization of the Java memory system Carl Stephen Lebsack Iowa State University Follow this and additional works at: http://lib.dr.iastate.edu/rtd

More information

Memory Organization and Optimization for Java Workloads

Memory Organization and Optimization for Java Workloads 284 IJCSNS International Journal of Computer Science and Network Security, VOL.6 No.11, November 2006 Memory Organization and Optimization for Java Workloads K. F. Chong, and Anthony S. Fong Department

More information

Towards Garbage Collection Modeling

Towards Garbage Collection Modeling Towards Garbage Collection Modeling Peter Libič Petr Tůma Department of Distributed and Dependable Systems Faculty of Mathematics and Physics, Charles University Malostranské nám. 25, 118 00 Prague, Czech

More information

Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization

Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Aritra Sengupta, Man Cao, Michael D. Bond and Milind Kulkarni 1 PPPJ 2015, Melbourne, Florida, USA Programming

More information

Exploiting the Behavior of Generational Garbage Collector

Exploiting the Behavior of Generational Garbage Collector Exploiting the Behavior of Generational Garbage Collector I. Introduction Zhe Xu, Jia Zhao Garbage collection is a form of automatic memory management. The garbage collector, attempts to reclaim garbage,

More information

Waste Not, Want Not Resource-based Garbage Collection in a Shared Environment

Waste Not, Want Not Resource-based Garbage Collection in a Shared Environment Waste Not, Want Not Resource-based Garbage Collection in a Shared Environment Matthew Hertz, Jonathan Bard, Stephen Kane, Elizabeth Keudel {hertzm,bardj,kane8,keudele}@canisius.edu Canisius College Department

More information

Exploring Dynamic Compilation and Cross-Layer Object Management Policies for Managed Language Applications. Michael Jantz

Exploring Dynamic Compilation and Cross-Layer Object Management Policies for Managed Language Applications. Michael Jantz Exploring Dynamic Compilation and Cross-Layer Object Management Policies for Managed Language Applications By Michael Jantz Submitted to the Department of Electrical Engineering and Computer Science and

More information

Automatic Object Colocation Based on Read Barriers

Automatic Object Colocation Based on Read Barriers See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/221644818 Automatic Object Colocation Based on Read Barriers Conference Paper September 2006

More information

Towards High Performance Processing in Modern Java-based Control Systems. Marek Misiowiec Wojciech Buczak, Mark Buttner CERN ICalepcs 2011

Towards High Performance Processing in Modern Java-based Control Systems. Marek Misiowiec Wojciech Buczak, Mark Buttner CERN ICalepcs 2011 Towards High Performance Processing in Modern Java-based Control Systems Marek Misiowiec Wojciech Buczak, Mark Buttner CERN ICalepcs 2011 Performance with soft real time Distributed system - Monitoring

More information

Cross-Layer Memory Management for Managed Language Applications

Cross-Layer Memory Management for Managed Language Applications Cross-Layer Memory Management for Managed Language Applications Michael R. Jantz University of Tennessee mrjantz@utk.edu Forrest J. Robinson Prasad A. Kulkarni University of Kansas {fjrobinson,kulkarni}@ku.edu

More information

GC Assertions: Using the Garbage Collector to Check Heap Properties

GC Assertions: Using the Garbage Collector to Check Heap Properties GC Assertions: Using the Garbage Collector to Check Heap Properties Edward E. Aftandilian Samuel Z. Guyer Department of Computer Science Tufts University {eaftan,sguyer}@cs.tufts.edu Abstract This paper

More information

IN recent years, web applications have become a popular

IN recent years, web applications have become a popular IEEE TRANSACTIONS ON CLOUD COMPUTING, VOL. 5, NO. 2, APRIL-JUNE 2017 263 An Energy-Efficient Java Virtual Machine Kuo-Yi Chen, Member, IEEE, J. Morris Chang, Senior Member, IEEE, and Ting-Wei Hou, Member,

More information