Mark Marron 1, Deepak Kapur 2, Manuel Hermenegildo 1 1 Imdea-Software (Spain) 2 University of New Mexico 1.

Slides:



Advertisements
Similar presentations
Chapter 22 Implementing lists: linked implementations.
Advertisements

Department of Computer Sciences Dynamic Shape Analysis via Degree Metrics Maria Jump & Kathryn S. McKinley Department of Computer Sciences The University.
Hybrid BDD and All-SAT Method for Model Checking Orna Grumberg Joint work with Assaf Schuster and Avi Yadgar Technion – Israel Institute of Technology.
Pointers.
CHP-5 LinkedList.
Garbage collection David Walker CS 320. Where are we? Last time: A survey of common garbage collection techniques –Manual memory management –Reference.
Object-Orientation Meets Big Data Language Techniques towards Highly- Efficient Data-Intensive Computing Harry Xu UC Irvine.
Static Single-Assignment ? ? Introduction: Over last few years [1991] SSA has been Stablished as… Intermediate program representation.
Shape Analysis by Graph Decomposition R. Manevich M. Sagiv Tel Aviv University G. Ramalingam MSR India J. Berdine B. Cook MSR Cambridge.
Compilation 2011 Static Analysis Johnni Winther Michael I. Schwartzbach Aarhus University.
Pointer Analysis – Part I Mayur Naik Intel Research, Berkeley CS294 Lecture March 17, 2009.
Analysis of programs with pointers. Simple example What are the dependences in this program? Problem: just looking at variable names will not give you.
Recursion vs. Iteration The original Lisp language was truly a functional language: –Everything was expressed as functions –No local variables –No iteration.
Names and Bindings.
Program Representations. Representing programs Goals.
Parallel Strategies Partitioning consists of the following steps –Divide the problem into parts –Compute each part separately –Merge the results Divide.
Course Outline Introduction in algorithms and applications Parallel machines and architectures Overview of parallel machines, trends in top-500 Cluster.
Computer Graphics1 Quadtrees & Octrees. Computer Graphics2 Quadtrees n A hierarchical data structure often used for image representation. n Quadtrees.
Memory Management. History Run-time management of dynamic memory is a necessary activity for modern programming languages Lisp of the 1960’s was one of.
Data Parallel Algorithms Presented By: M.Mohsin Butt
File System Implementation CSCI 444/544 Operating Systems Fall 2008.
Connectivity-Based Garbage Collection Presenter Feng Xian Author Martin Hirzel, et.al Published in OOPSLA’2003.
Previous finals up on the web page use them as practice problems look at them early.
Tentative Schedule 20/12 Interpreter+ Code Generation 27/12 Code Generation for Control Flow 3/1 Activation Records 10/1 Program Analysis 17/1 Register.
Garbage collection David Walker CS 320. Where are we? Last time: A survey of common garbage collection techniques –Manual memory management –Reference.
1 Load Balance and Efficient Hierarchical Data-Centric Storage in Sensor Networks Yao Zhao, List Lab, Northwestern Univ Yan Chen, List Lab, Northwestern.
Chapter 12 Trees. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Chapter Objectives Define trees as data structures Define the terms.
1 Load Balance and Efficient Hierarchical Data-Centric Storage in Sensor Networks Yao Zhao, List Lab, Northwestern Univ Yan Chen, List Lab, Northwestern.
ECE669 L23: Parallel Compilation April 29, 2004 ECE 669 Parallel Computer Architecture Lecture 23 Parallel Compilation.
Memory Management Last Update: July 31, 2014 Memory Management1.
C o n f i d e n t i a l Developed By Nitendra NextHome Subject Name: Data Structure Using C Title: Overview of Data Structure.
Exploiting Prolific Types for Memory Management and Optimizations By Yefim Shuf et al.
Mark Marron IMDEA-Software (Madrid, Spain) 1.
Introduction to Data Structures. Definition Data structure is representation of the logical relationship existing between individual elements of data.
Mark Marron IMDEA-Software (Madrid, Spain) 1.
Course Outline Introduction in algorithms and applications Parallel machines and architectures Overview of parallel machines, trends in top-500, clusters,
Algorithm Programming Bar-Ilan University תשס"ח by Moshe Fresko.
Representing and Using Graphs
Mark Marron, Mario Mendez-Lojo Manuel Hermenegildo, Darko Stefanovic, Deepak Kapur 1.
Simulated Pointers Limitations Of Java Pointers May be used for internal data structures only. Data structure backup requires serialization and deserialization.
1 Records Record aggregate of data elements –Possibly heterogeneous –Elements/slots are identified by names –Elements in same fixed order in all records.
Mark Marron 1, Deepak Kapur 2, Manuel Hermenegildo 1 1 Imdea-Software (Spain) 2 University of New Mexico 1.
Model construction and verification for dynamic programming languages Radu Iosif
Mark Marron IMDEA-Software (Madrid, Spain) 1.
Union-find Algorithm Presented by Michael Cassarino.
Convergence of Model Checking & Program Analysis Philippe Giabbanelli CMPT 894 – Spring 2008.
08 - StructuralCSC4071 Structural Patterns concerned with how classes and objects are composed to form larger structures –Adapter interface converter Bridge.
Ronny Krashinsky Erik Machnicki Software Cache Coherent Shared Memory under Split-C.
Computer Science Projects Internal Assessment. Mastery Item Claimed Justification Where Listed Random Access File – Searching Lines P. 53 Random.
Review 1 Queue Operations on Queues A Dequeue Operation An Enqueue Operation Array Implementation Link list Implementation Examples.
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Merging Equivalent Contexts for Scalable Heap-cloning-based Points-to.
ISBN Chapter 6 Data Types Pointer Types Reference Types Memory Management.
Fortress Aaron Becker Abhinav Bhatele Hassan Jafri 2 May 2006.
Pointer Analysis Survey. Rupesh Nasre. Aug 24, 2007.
Compiled By: Raj Gaurang Tiwari Assistant Professor SRMGPC, Lucknow Unsupervised Learning.
An Efficient CUDA Implementation of the Tree-Based Barnes Hut n-body Algorithm By Martin Burtscher and Keshav Pingali Jason Wengert.
Machine Vision ENT 273 Regions and Segmentation in Images Hema C.R. Lecture 4.
1Computer Sciences. 2 HEAP SORT TUTORIAL 4 Objective O(n lg n) worst case like merge sort. Sorts in place like insertion sort. A heap can be stored as.
Simulated Pointers Limitations Of C++ Pointers May be used for internal data structures only. Data structure backup requires serialization and deserialization.
Eliminating External Fragmentation in a Non-Moving Garbage Collector for Java Author: Fridtjof Siebert, CASES 2000 Michael Sallas Object-Oriented Languages.
Parallel Computing Chapter 3 - Patterns R. HALVERSON MIDWESTERN STATE UNIVERSITY 1.
Hybrid BDD and All-SAT Method for Model Checking
Spring 2016 Program Analysis and Verification
Compositional Pointer and Escape Analysis for Java Programs
Harry Xu University of California, Irvine & Microsoft Research
Capriccio – A Thread Model
Course Outline Introduction in algorithms and applications
Indexing and Hashing B.Ramamurthy Chapter 11 2/5/2019 B.Ramamurthy.
CPS216: Advanced Database Systems
Presentation transcript:

Mark Marron 1, Deepak Kapur 2, Manuel Hermenegildo 1 1 Imdea-Software (Spain) 2 University of New Mexico 1

 Want to identify regions (sets of objects) that are conceptually related  Conceptually related Same recursive data structure Stored in equivalent locations (e.g., same array)  Extract information via static analysis  Apply memory optimizations on regions instead of over entire heap Region Allocation/Collection Region/Parallel GC Optimized Layout 2

 Must be Dynamic Variable based partitions too coarse, do not represent composition well. Allocation site based too imprecise, can cause spurious grouping of objects.  Must be Repartitionable Want to track program splitting and merging regions: list append, subset operations. 3

 Base on storage shape graph Nodes represent sets of objects (or recursive data structures), edges represent sets of pointers Has natural representation heap regions and relations between them Efficient  Annotate nodes and edges with additional instrumentation properties For region identification only need type information 4

 Recursive Structures Group objects representing same recursive structure, keep distinct from other recursive structures  References Group objects stored in similar sets of locations together (objects in A, in B, both A and B)  Composite Structures Group objects in each subcomponent, group similar components hierarchically 5

 The general approach taken to Identifying Recursive Data Structures is well known Look at type information to determine which objects may be part of a recursive structure Based on connectivity group these recursive objects together  Two subtle distinctions made in this work Only group objects in complete recursive structure Ignore back pointers in computing complete recursive structures 6

7 class Enode { Enode[] fromN; … }

 The grouping of objects that are in the same container or related composite structures is more difficult  Given regions R, R’ when do they represent conceptually equivalent sets of objects Stored in the same types of locations (variables, collections, referred to by same object fields) Have same type of recursive signature (can split leaf contents of recursive structures from internal recursive component) 8

9

 N-Body Simulation in 3-dimensions  Uses Fast Multi-Pole method with space decomposition tree For nearby bodies use naive n 2 algorithm For distant bodies compute center of mass of many bodies and treat as single point mass 10

11

12 for(…) { root = null; makeTree(); Iterator bm = this.bodyTabRev.iterator(); while(bm.hasNext()) bm.next().hackGravity(root); Iterator bp = this.bodyTabRev.iterator(); while(bm.hasNext()) bm.next().propUpdatedAccel(); }

 Statically collect, space decomposition tree and all MathVector/double[] objects (11% of GC work). 13

 GC objects reachable from the acc/vel fields in parallel with the hackGravity method (no overhead). 14

 Inline Double[] into MathVector objects, 23% serial speedup 37% memory use reduction. 15

BenchmarkLOCAnalysis Time Analysis Memory Region Ok tsp s<30 MBY em3d s<30 MBY voronoi s<30 MBY bh s<30 MBY db s<30 MBY raytrace s38 MBY exp s48 MBY debug s122 MBY 16

 Simple interpreter and debug environment for large subset of Java language  14,000+ Loc (in normalized form), 90 Classes Additional 1500 Loc for specialized standard library handling stubs.  Large recursive call structures, large inheritance trees with numerous virtual method implementations  Wide range of data structure types, extensive use of java.util collections, heap contains both shared and unshared structures. 17

 Region Information provides excellent basis for driving many memory optimizations and supporting other analysis work  A simple set of heuristics (when taking into account a few subtleties) is sufficient for grouping memory objects  Recent work shows excellent scalability on non-trivial programs  Further work on developing robust infrastructure for further evaluation and applications 18