Statistical Analysis of Inlining Heuristics in Jikes RVM Jing Yang Department of Computer Science, University of Virginia.

Slides:



Advertisements
Similar presentations
Creating Computer Programs lesson 27. This lesson includes the following sections: What is a Computer Program? How Programs Solve Problems Two Approaches:
Advertisements

Automatic Tuning1/33 Boosting Verification by Automatic Tuning of Decision Procedures Domagoj Babić joint work with Frank Hutter, Holger H. Hoos, Alan.
Chapter 17 Overview of Multivariate Analysis Methods
Online Performance Auditing Using Hot Optimizations Without Getting Burned Jeremy Lau (UCSD, IBM) Matthew Arnold (IBM) Michael Hind (IBM) Brad Calder (UCSD)
Project 4 U-Pick – A Project of Your Own Design Proposal Due: April 14 th (earlier ok) Project Due: April 25 th.
Source Code Optimization and Profiling of Energy Consumption in Embedded System Simunic, T.; Benini, L.; De Micheli, G.; Hans, M.; Proceedings on The 13th.
1 Programming Languages b Each type of CPU has its own specific machine language b But, writing programs in machine languages is cumbersome (too detailed)
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2004 Project.
Reference Book: Modern Compiler Design by Grune, Bal, Jacobs and Langendoen Wiley 2000.
Biostatistics Frank H. Osborne, Ph. D. Professor.
1 Validation and Verification of Simulation Models.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science John Cavazos Architecture and Language Implementation Lab Thesis Seminar University.
Goals of Factor Analysis (1) (1)to reduce the number of variables and (2) to detect structure in the relationships between variables, that is to classify.
Chapter 12: Simulation and Modeling Invitation to Computer Science, Java Version, Third Edition.
Chapter 12: Simulation and Modeling
Chapter 10: Compilers and Language Translation Invitation to Computer Science, Java Version, Third Edition.
Evaluating Performance Information for Mapping Algorithms to Advanced Architectures Nayda G. Santiago, PhD, PE Electrical and Computer Engineering Department.
Qualitative and Quantitative Research Quantitative Deductive: transforms general theory into hypothesis suitable for testing Deductive: transforms general.
Introduction to Java August 14, 2008 Mrs. C. Furman.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Which Language is Better?
John Mellor-Crummey Robert Fowler Nathan Tallent Gabriel Marin Department of Computer Science, Rice University Los Alamos Computer Science Institute HPCToolkit.
Management Consultancy
Introduction to Information and Computer Science Computer Programming Lecture b This material (Comp4_Unit5b), was developed by Oregon Health and Science.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
FINAL EXAM SCHEDULER (FES) Department of Computer Engineering Faculty of Engineering & Architecture Yeditepe University By Ersan ERSOY (Engineering Project)
Lecture 9: 9/24/2002CS170 Fall CS170 Computer Organization and Architecture I Ayman Abdel-Hamid Department of Computer Science Old Dominion University.
Introduction to Statistics 1 Chapter 1. Chapter Outline An Overview of Statistics 1.2 Data Classification 1.3 Experimental Design 2.
CT1513 Introduction To java © A.AlOsaimi.
Component 4: Introduction to Information and Computer Science Unit 5: Overview of Programming Languages, Including Basic Programming Concepts Lecture 2.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Multivariate Data Analysis Chapter 1 - Introduction.
Copyright © 2014 Pearson Education. All rights reserved What Is/Are Statistics? Two Definitions of Statistics _____________ is the science of.
CSC1200 INTRODUCTION TO PROGRAMMING Dr. Maureen Markel
1 Chapter 1 Programming Languages Evolution of Programming Languages To run a Java program: Java instructions need to be translated into an intermediate.
ECE 8443 – Pattern Recognition ECE 8527 – Introduction to Machine Learning and Pattern Recognition LECTURE 12: Advanced Discriminant Analysis Objectives:
Introduction to OOP CPS235: Introduction.
Getting Started With Java September 22, Java Bytecode  Bytecode : is a highly optimized set of instructions designed to be executed by the Java.
Vertical Profiling : Understanding the Behavior of Object-Oriented Applications Sookmyung Women’s Univ. PsLab Sewon,Moon.
CISC Machine Learning for Solving Systems Problems Presented by: Eunjung Park Dept of Computer & Information Sciences University of Delaware Solutions.
Introduction to Computers Lesson 13A. home Computer Program A set of instructions or statements, also called code, to be carried out by the computer’s.
The population in a statistical study is the entire group of individuals about which we want information The population is the group we want to study.
1 Canonical Correlation Analysis Shyh-Kang Jeng Department of Electrical Engineering/ Graduate Institute of Communication/ Graduate Institute of Networking.
Ch 20. Parameter Control Ch 21. Self-adaptation Evolutionary Computation vol. 2: Advanced Algorithms and Operators Summarized and presented by Jung-Woo.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Methods of multivariate analysis Ing. Jozef Palkovič, PhD.
Department of Computer Science DCS COMSATS Institute of Information Technology Thread level parallelism of desktop applications Presented by Muhammad Kamran.
Chapter 12: Simulation and Modeling
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
Writing the research protocol
Chapter 1 Introduction to Statistics
Overview of Statistics
Presented by: Sameer Kulkarni
1.1 What Is/Are Statistics?
“just-in-time” compilation (JIT) technique prepared by - Harshada Hole
A Unifying View on Instance Selection
Adaptive Code Unloading for Resource-Constrained JVMs
Christophe Dubach, Timothy M. Jones and Michael F.P. O’Boyle
Correcting the Dynamic Call Graph Using Control Flow Constraints
by Xiang Mao and Qin Chen
Predicting Unroll Factors Using Supervised Classification
MECH 3550 : Simulation & Visualization
Multivariate Methods Berlin Chen
Chapter 10: Compilers and Language Translation
Chap. 1: Introduction to Statistics
Principal Component Analysis
Canonical Correlation Analysis
Program-level Adaptive Memory Management
Presentation transcript:

Statistical Analysis of Inlining Heuristics in Jikes RVM Jing Yang Department of Computer Science, University of Virginia

Outline Introduction Data Set Description Data Analysis, Summarization and Interpretation Future Work Conclusion

Introduction Java highly portable programming language portability is often at the cost of execution speed seeking optimizations to improve the performance inlining – one of the heavily used optimizations reduce overhead associated with the function call code expansion aggressive inlining can hurt performance

Introduction

Inlining Heuristic used in Java Virtual Machines to decide whether to inline or not need to be tuned to achieve the optimal solution current tuning technique manually – not accurate genetic algorithm – time-consuming due to the large number of parameters

Introduction Goal locate parameters used in the inlining heuristic that actually impact its performance focus on these “effective” parameters reduce time for tuning process simplify the inlining heuristic to reduce its running overhead without sacrificing its performance

Data Set Description

Data Collection a complete combination of all the values – 500 for each configuration, run the whole SPECjvm98 benchmark (including nine Java programs) – 9 within each run, collect three performance metrics (compiled code size, compilation time, execution time) – 3 raw data – 500*9*3=13,500 observations form the raw data into different formats for different statistical analysis

Data Analysis, Summarization and Interpretation Inside Performances 3 variables – compiled code size, compilation time, execution time geometric mean from the first seven benchmarks in SPECjvm observations standardization before analysis

Data Analysis, Summarization and Interpretation Principal Component Analysis

Data Analysis, Summarization and Interpretation First Principal Component explain 71.58% of the total sample variance. correlations between the first principal component and the three variables compiled code size/compilation time has a contrast to execution time accords with our intuition of inlining

Data Analysis, Summarization and Interpretation Performances versus Parameters 7 variables – four parameters and three performance metrics 500 observations standardization before analysis

Data Analysis, Summarization and Interpretation Canonical Correlation Analysis

Data Analysis, Summarization and Interpretation Only Consider One Performance Metric

Data Analysis, Summarization and Interpretation Conclusion CALLEE_MAX_SIZE and MAX_INLINE_DEPTH are important ALWAYS_INLINE_SIZE and CALLER_MAX_SIZE can be neglected unless only optimizing execution time

Data Analysis, Summarization and Interpretation Verification classify data from the remaining two benchmarks the more important a parameter is, the better classification can be performed based on it Fisher's discriminant function pairwise classifications based on CALLEE_MAX_SIZE multi-population classification based on CALLEE_MAX_SIZE most separate pairwise classification based on ALWAYS_INLINE_SIZE, MAX_INLINE_DEPTH and CALLER_MAX_SIZE

Data Analysis, Summarization and Interpretation

Future Work Verification by Jikes RVM Better Discriminant Function Statistical Method to Find Optimal Solution Program Properties

Conclusion Locate and Verify the Important Parameters Reduce Time for Tuning Process Simplify the Inlining Heuristic