Michelle Mills Strout OpenAnalysis: Representation- Independent Program Analysis CCA Meeting January 17, 2008.

Slides:



Advertisements
Similar presentations
Optimizing Compilers for Modern Architectures Syllabus Allen and Kennedy, Preface Optimizing Compilers for Modern Architectures.
Advertisements

Jaewook Shin, Priyadarshini Malusare and Paul D. Hovland Mathematics and Computer Science Division Argonne National Laboratory Design and Implementation.
Software & Services Group, Developer Products Division Copyright© 2010, Intel Corporation. All rights reserved. *Other brands and names are the property.
Context-Sensitive Interprocedural Points-to Analysis in the Presence of Function Pointers Presentation by Patrick Kaleem Justin.
Program Representations. Representing programs Goals.
A survey of techniques for precise program slicing Komondoor V. Raghavan Indian Institute of Science, Bangalore.
Traditional Approach to Design
Chapter 9: The Traditional Approach to Design Chapter 10 Systems Analysis and Design in a Changing World, 3 rd Edition.
Software Design Deriving a solution which satisfies software requirements.
Static Analysis of Embedded C Code John Regehr University of Utah Joint work with Nathan Cooprider.
Common Sub-expression Elim Want to compute when an expression is available in a var Domain:
Representing programs Goals. Representing programs Primary goals –analysis is easy and effective just a few cases to handle directly link related things.
Software Evolution Managing the processes of software system change
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
May 25, 2010 Mary Hall May 25, 2010 Advancing the Compiler Community’s Research Agenda with Archiving and Repeatability * This work has been partially.
ISBN Chapter 1 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Motivation Programming Domains.
Application architectures
Direction of analysis Although constraints are not directional, flow functions are All flow functions we have seen so far are in the forward direction.
Recap from last time: live variables x := 5 y := x + 2 x := x + 1 y := x y...
SMIILE Finaly COBOL! and what else is new Gordana Rakić, Zoran Budimac.
1 Dan Quinlan, Markus Schordan, Qing Yi Center for Applied Scientific Computing Lawrence Livermore National Laboratory Semantic-Driven Parallelization.
Machine-Independent Optimizations Ⅰ CS308 Compiler Theory1.
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
Direction of analysis Although constraints are not directional, flow functions are All flow functions we have seen so far are in the forward direction.
Architectural Styles SE 464 / ECE 452 / CS 446 Chang Hwan Peter Kim Based on slides prepared by Michał Antkiewicz June 24, 2006.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
MIT Lincoln Laboratory XYZ 3/11/2005 Automatic Extraction of Software Models for Exascale Hardware/Software Co-Design Damian Dechev 1,2, Amruth.
Precision Going back to constant prop, in what cases would we lose precision?
Impact Analysis of Database Schema Changes Andy Maule, Wolfgang Emmerich and David S. Rosenblum London Software Systems Dept. of Computer Science, University.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
Bridging the chasm between MDE and the world of compilation Nondini Das 1.
1 CASC ROSE Compiler Infrastructure Source-to-Source Analysis and Optimization Dan Quinlan Rich Vuduc, Qing Yi, Markus Schordan Center for Applied Scientific.
OpenAlea An OpenSource platform for plant modeling C. Pradal, S. Dufour-Kowalski, F. Boudon, C. Fournier, C. Godin.
K. Jamroendararasame*, T. Matsuzaki, T. Suzuki, and T. Tokuda Department of Computer Science, Tokyo Institute of Technology, JAPAN Two Generators of Secure.
Secure Web Applications via Automatic Partitioning Stephen Chong, Jed Liu, Andrew C. Meyers, Xin Qi, K. Vikram, Lantian Zheng, Xin Zheng. Cornell University.
CQoS Update Li Li, Boyana Norris, Lois Curfman McInnes Argonne National Laboratory Kevin Huck University of Oregon.
Chapter 6 : Software Metrics
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SC 2012 © LLNL / JSC 1 HPCToolkit / Rice University Performance Analysis through callpath sampling  Designed for low overhead  Hot path analysis  Recovery.
1 Advance Computer Architecture CSE 8383 Ranya Alawadhi.
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
John Mellor-Crummey Robert Fowler Nathan Tallent Gabriel Marin Department of Computer Science, Rice University Los Alamos Computer Science Institute HPCToolkit.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
Nick Draper 05/11/2008 Mantid Manipulation and Analysis Toolkit for ISIS data.
“DECISION” PROJECT “DECISION” PROJECT INTEGRATION PLATFORM CORBA PROTOTYPE CAST J. BLACHON & NGUYEN G.T. INRIA Rhône-Alpes June 10th, 1999.
Combinatorial Scientific Computing and Petascale Simulation (CSCAPES) A SciDAC Institute Funded by DOE’s Office of Science Investigators Alex Pothen, Florin.
Term 2, 2011 Week 1. CONTENTS Problem-solving methodology Programming and scripting languages – Programming languages Programming languages – Scripting.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
CS 671 Compilers Prof. Kim Hazelwood Spring 2008.
Deconstructing Storage Arrays Timothy E. Denehy, John Bent, Florentina I. Popovici, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau University of Wisconsin,
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
MILAN: Technical Overview October 2, 2002 Akos Ledeczi MILAN Workshop Institute for Software Integrated.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Angel Trifonov Yun Lu Ying Wang RICARDO: INTEGRATING R AND HADOOP.
MODPI: A parallel MOdel Data Passing Interface for integrating legacy environmental system models A. Dozier, O. David, Y. Zhang, and M. Arabi.
Using Cache Models and Empirical Search in Automatic Tuning of Applications Apan Qasem Ken Kennedy John Mellor-Crummey Rice University Houston, TX Apan.
Visualization Four groups Design pattern for information visualization
Cooperative Computing & Communication Laboratory A Survey on Transformation Tools for Model-Based User Interface Development Robbie Schäfer – Paderborn.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Succinct Analysis Specification with Automatic May/Must Determination The DFAGEN Tool Slide 1 SCAM 2008 Conference September 29 th Andrew Stone, Michelle.
Anders Nielsen Technical University of Denmark, DTU-Aqua Mark Maunder Inter-American Tropical Tuna Commission An Introduction.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Learning A Better Compiler Predicting Unroll Factors using Supervised Classification And Integrating CPU and L2 Cache Voltage Scaling using Machine Learning.
ECE 750 Topic 8 Meta-programming languages, systems, and applications Automatic Program Specialization for J ava – U. P. Schultz, J. L. Lawall, C. Consel.
CSCAPES Mission Research and development Provide load balancing and parallelization toolkits for petascale computation Develop advanced automatic differentiation.
Systems Analysis and Design in a Changing World, Fourth Edition
课程名 编译原理 Compiling Techniques
Introduction to cosynthesis Rabi Mahapatra CSCE617
Presentation transcript:

Michelle Mills Strout OpenAnalysis: Representation- Independent Program Analysis CCA Meeting January 17, 2008

2 OpenAnalysis Collaborators Paul Hovland and Priya Malusare (Argonne) Andy Stone and Kiley Graim (Colorado State University) Jean Utke (University of Chicago) Brian White and Sally McKee (Cornell University) John Mellor-Crummey and Nathan Tallent (Rice University) Barbara Kreaseck (La Sierra University)

3 OpenAnalysis Problem: Insufficient analysis support in existing compiler infrastructures due to non-transferability of analysis implementations Decouples analysis algorithms from intermediate representations (IRs) by developing analysis-specific interfaces Analysis reuse across compiler infrastructures - Enable researchers to leverage prior work - Enable direct comparisons amongst analyses - Increase the impact of compiler analysis research

Program Analysis and CCA Generating component wrappers for legacy codes Call graph generation for determining wrap target Requires side-effect analysis to determine wrapper parameters Other ideas? Program Analysis uses for High Performance and Scientific Computing - performance-improving transformations (i.e. data locality and parallelism) - automatic differentiation (i.e. given a program F, generates program F’ that calculates the derivative of outputs with respect to inputs)

Example Projects that Found Analysis Support Wanting Caching policies in parallel file systems [Vilayannur] estimates memory references in perfect loops with constant loop bounds symbolic analysis would provide a better estimate, but was unavailable in the infrastructure being used Hancock at AT&T [Fisher and Rogers] domain-specific language for statisticians to manipulate transactions using a familiar notation two researchers could not do the enormous amount of work to support domain-specific analysis of Hancock ROSE at LLNL [Quinlan et al.] needed C++ compiler infrastructure that could perform source-to-source, high-level, and domain-specific transformations ROSE has been in development for over a decade and we are just starting to add alias analysis using OpenAnalysis

6 Multitude of Compiler Infrastructures Scale A Scalable Compiler for Analytical Experiments LLVM ORC ROSE C-Breeze C Compiler Infrastructure

Root Causes of Analysis Support Problem No single intermediate representation (IR) works for all projects, therefore cannot settle on one IR Analysis implementation takes a significant amount of time and effort Compiler infrastructures are difficult to support long-term and branching can occur with no system for central updates We hypothesize that most fundamental problem is that all compiler infrastructures integrate program analysis with the program representation or IR

8 Outline Motivation and Problem - Analysis support problem OpenAnalysis: Representation-Independent Analysis OpenAnalysis Status

Analysis-Specific IR Interfaces Represent imperative programming constructs with opaque handles: procedures, statements, memory references, expressions, operations, constants, etc. Make queries on handles Example: Control-flow graph analysis IRStmtType getStmtType(StmtHandle) SIMPLE, LOOP, STRUCT_TWOWAYCONDITIONAL,...

Software Architecture for OpenAnalysis Clients Toolkit Intermediate Representation

11 Outline Motivation and Problem - Analysis support problem OpenAnalysis: Representation-Independent Analysis OpenAnalysis Status

Groups Using OpenAnalysis ACTS, Adjoint Compiler Technology & Standards (AD) project at Argonne, Rice, and MIT - WHIRL: Open64 compiler infrastructure - Sage3: ROSE at LLNL Mesh optimization tool being built by Brian White at Cornell Bloop tool in HPCToolkit at Rice - Binary code: MIPS, Alpha, Pentium4, IA64, and Sparc Telescoping languages at Rice - R: scripting language for statistical computing

13 OpenAnalysis Status Number of analyses implemented (eg. FIAlias, side- effect analysis, reach defs, activity analysis, etc.) IR interfaces for ROSE and Open64 compiler infrastructures Large regression test suite Developing data-flow analysis implementation generation from a set-based language

Conclusions Language-independent program analysis enables sharing between and within compiler infrastructures Analysis-specific, IR-independent interfaces are the key - represent complex language constructs with abstractions that are basic to all imperative programming languages - design the interface to satisfy a broad range of implementations OpenAnalysis could be used to automatically generate component wrappers The OpenAnalysis toolkit is being actively used and further developed within the context of multiple projects (clients) for multiple IRs