Speculative Region-based Memory Management for Big Data Systems Khanh Nguyen, Lu Fang, Harry Xu, Brian Demsky Donald Bren School of Information and Computer.

Slides:



Advertisements
Similar presentations
Dataflow Analysis for Datarace-Free Programs (ESOP 11) Arnab De Joint work with Deepak DSouza and Rupesh Nasre Indian Institute of Science, Bangalore.
Advertisements

Object-Orientation Meets Big Data Language Techniques towards Highly- Efficient Data-Intensive Computing Harry Xu UC Irvine.
Automated Evaluation of Runtime Object States Against Model-Level States for State-Based Test Execution Frank(Weifeng) Xu, Gannon University Dianxiang.
Automatic Memory Management Noam Rinetzky Schreiber 123A /seminar/seminar1415a.html.
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
Resurrector: A Tunable Object Lifetime Profiling Technique Guoqing Xu University of California, Irvine OOPSLA’13 Conference Talk 1.
Guoquing Xu, Atanas Rountev Ohio State University Oct 9 th, 2008 Presented by Eun Jung Park.
Fast Paths in Concurrent Programs Wen Xu, Princeton University Sanjeev Kumar, Intel Labs. Kai Li, Princeton University.
CS 326 Programming Languages, Concepts and Implementation Instructor: Mircea Nicolescu Lecture 18.
Establishing Local Temporal Heap Safety Properties with Applications to Compile-Time Memory Management Ran Shaham Eran Yahav Elliot Kolodner Mooly Sagiv.
Wish Branches A Review of “Wish Branches: Enabling Adaptive and Aggressive Predicated Execution” Russell Dodd - October 24, 2006.
Connectivity-Based Garbage Collection Presenter Feng Xian Author Martin Hirzel, et.al Published in OOPSLA’2003.
Run-Time Storage Organization
1 PATH: Page Access Tracking Hardware to Improve Memory Management Reza Azimi, Livio Soares, Michael Stumm, Tom Walsh, and Angela Demke Brown University.
1 Improving Hash Join Performance through Prefetching _________________________________________________By SHIMIN CHEN Intel Research Pittsburgh ANASTASSIA.
Compile-Time Deallocation of Individual Objects Sigmund Cherem and Radu Rugina International Symposium on Memory Management June, 2006.
1 Detecting Logic Vulnerabilities in E- Commerce Applications Presenter: Liu Yin Slides Adapted from Fangqi Sun Computer Science Department College of.
Facade: A Compiler and Runtime for (Almost) Object-Bounded Big Data Applications UC Irvine USA Khanh Nguyen Khanh Nguyen, Kai Wang, Yingyi Bu, Lu Fang,
HW/SW Co-Synthesis of Dynamically Reconfigurable Embedded Systems HW/SW Partitioning and Scheduling Algorithms.
CACHETOR Detecting Cacheable Data to Remove Bloat Khanh Nguyen Guoqing Xu UC Irvine USA.
Memory Management for Real-Time Java Wes Beebee and Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Supported by: DARPA.
A Lightweight Infrastructure for Graph Analytics Donald Nguyen Andrew Lenharth and Keshav Pingali The University of Texas at Austin.
An Adaptive, Region-based Allocator for Java Feng Qian, Laurie Hendren {fqian, Sable Research Group School of Computer Science McGill.
Threads, Thread management & Resource Management.
X-Stream: Edge-Centric Graph Processing using Streaming Partitions
A Framework for Elastic Execution of Existing MPI Programs Aarthi Raveendran Graduate Student Department Of CSE 1.
An Implementation and Performance Evaluation of Language with Fine-Grain Thread Creation on Shared Memory Parallel Computer Yoshihiro Oyama, Kenjiro Taura,
Dynamic Object Sampling for Pretenuring Maria Jump Department of Computer Sciences The University of Texas at Austin Stephen M. Blackburn.
Chameleon Automatic Selection of Collections Ohad Shacham Martin VechevEran Yahav Tel Aviv University IBM T.J. Watson Research Center Presented by: Yingyi.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
Mark Marron 1, Deepak Kapur 2, Manuel Hermenegildo 1 1 Imdea-Software (Spain) 2 University of New Mexico 1.
Memory Management. Memory  Commemoration or Remembrance.
Model construction and verification for dynamic programming languages Radu Iosif
1 Threads Chapter 11 from the book: Inter-process Communications in Linux: The Nooks & Crannies by John Shapley Gray Publisher: Prentice Hall Pub Date:
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Patterns and Tools for Achieving Predictability and Performance with Real-time Java Presenter: Ehsan Ghaneie.
Is Your Graph Algorithm Eligible for Nondeterministic Execution? Zhiyuan Shao, Lin Hou, Yan Ai, Yu Zhang and Hai Jin Services Computing Technology and.
Threads, Thread management & Resource Management.
1 CSE 331 Model/View Separation and Observer Pattern slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia.
Data Structures and Algorithms in Parallel Computing Lecture 7.
A Region-Based Compilation Technique for a Java Just-In-Time Compiler Toshio Suganuma, Toshiaki Yasue and Toshio Nakatani Presenter: Ioana Burcea.
CS533 Concepts of Operating Systems Jonathan Walpole.
Pointer and Escape Analysis for Multithreaded Programs Alexandru Salcianu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology.
GC Assertions: Using the Garbage Collector To Check Heap Properties Samuel Z. Guyer Tufts University Edward Aftandilian Tufts University.
Supporting On-Demand Elasticity in Distributed Graph Processing Mayank Pundir*, Manoj Kumar, Luke M. Leslie, Indranil Gupta, Roy H. Campbell University.
Parallel Computing Chapter 3 - Patterns R. HALVERSON MIDWESTERN STATE UNIVERSITY 1.
Automatic Memory Management Without Run-time Overhead Brian Brooks.
Design issues for Object-Oriented Languages
Static Analysis of Object References in RMI-based Java Software
Threads vs. Events SEDA – An Event Model 5204 – Operating Systems.
Why Events Are A Bad Idea (for high-concurrency servers)
Controlled Kernel Launch for Dynamic Parallelism in GPUs
Seminar in automatic tools for analyzing programs with dynamic memory
Using Execution Feedback in Test Case Generation
Yak: A High-Performance Big-Data-Friendly Garbage Collector
V-Shaped SDLC Model Lecture-6.
CS 153: Concepts of Compiler Design November 28 Class Meeting
Speculative Region-based Memory Management for Big Data Systems
runtime verification Brief Overview Grigore Rosu
Performance Evaluation of Adaptive MPI
CACHETOR Detecting Cacheable Data to Remove Bloat
Skyway: Connecting Managed Heaps in Distributed Big Data Systems
Capriccio – A Thread Model
Yak: A High-Performance Big-Data-Friendly Garbage Collector
Page Replacement.
Dynamic Memory.
Resource Allocation for Distributed Streaming Applications
CS122B: Projects in Databases and Web Applications Winter 2019
Maximizing Speedup through Self-Tuning of Processor Allocation
Phoenix: A Substrate for Resilient Distributed Graph Analytics
Presentation transcript:

Speculative Region-based Memory Management for Big Data Systems Khanh Nguyen, Lu Fang, Harry Xu, Brian Demsky Donald Bren School of Information and Computer Sciences

2

Scalability JVM crashes due to OutOfMemory error at early stage 3

4 A moderate-size application on Giraph with 1GB input data can easily run out of memory on a 12 GB heap [Bu et al, ISMM’13]

Scalability JVM crashes due to OutOfMemory error at early stage Management cost GC time accounts for up to 50% of the execution time [Bu et al, ISMM’13] 5

Existing Work Facade [Nguyen et al, ASPLOS’15] Broom [Gog et al, HotOS’15] 6 This work: Purely dynamic technique This work: Purely dynamic technique Huge manual effort from developers

Control Path vs. Data Path Pipeline constructionJob state managementPerform optimizationProcess the actual dataCode size is small (36%) Create most of the runtime objects (95%) 7 [Bu et al, ISMM’13]

Execution Pattern Data-processing functions are iteration- based Each iteration processes a distinct data partition Iterations are well-defined 8

9 public interface GraphChiProgram { public void update(ChiVertex vertex, GraphChiContext context); public void beginIteration(GraphChiContext ctx); public void endIteration(GraphChiContext ctx); public void beginInterval(GraphChiContext ctx, VertexInterval interval); public void endInterval(GraphChiContext ctx, VertexInterval interval); public void beginSubInterval(GraphChiContext ctx, VertexInterval interval); public void endSubInterval(GraphChiContext ctx, VertexInterval interval); } GraphChi [Kyora et al, OSDI’12]

Weak Iteration Hypothesis Data objects do not escape iteration boundaries –GC run in the middle is wasted Control objects do escape iteration boundaries 10 PageRank – Twitter graph

Region-based Memory Management Region definition Management: –Allocation –Deallocation 11

Advantages Low overheads Improved data locality More flexible than stack allocation No GC burden 12

Challenges Escaping control objects Developers are responsible for semantic correctness 13 Precise objects lifetime required! Facade annotation & refactoring Broom specialized API static analyses?

Proposed Solution 14 Speculative Region Allocation annotate iteration boundary: - iteration_start - iteration_end Algorithms to guarantee program’s correctness automatically

Observations nested executed by multiple threads 15 iteration_ID, thread_ID Iterations

Region Semi-lattice 16 T,* 1,t 1 2,t 1 3,t 1 1,t 2 2,t 2 3,t 2 heap region JOIN OPERATOR GC never touches regions void main() { } //end of main void main() { } //end of main iteration_start for( ) { } iteration_end iteration_start for( ) { } iteration_end iteration_start for( ) { } iteration_end iteration_start for( ) { } iteration_end iteration_start for( ) { } iteration_end iteration_start for( ) { } iteration_end

Speculative Region Allocation 17 iteration_start iteration_end Parent Child

Components of Our Approach Speculative region allocation Track inter-region references –Update boundary set Recycle regions –Boundary set promotion 18

Remember Inter-Region References: Case 1 19 b b a a a.f = b b b x,t i y,t i boundary set

Remember Inter-Region References: Case 2 20 c c a = b.f x,t i y,t j c c boundary set b b f

Region Recycling Algorithm 21 T,* 1,t 1 2,t 1 3,t 1 1,t 2 2,t 2 3,t 2 3,t 1 boundary set JOIN (, ) = 1,t 1 2,t 1 1,t 1

Region Recycling Algorithm 22 T,* 1,t 1 2,t 1 3,t 1 1,t 2 2,t 2 3,t 2 3,t 1 JOIN (, ) = 2,t 1 2,t 2 T,* boundary set

Region Recycling Algorithm 23 T,* 1,t 1 2,t 1 3,t 1 1,t 2 2,t 2 3,t 2 3,t 1 boundary set

Handling of Intricacies Escape via the stack Data-race-free object relocation Details are in the paper 24

Conclusions Goal: Reduce user’s effort Solution: Speculative region allocation –The cost of object promotion is considerable Can be reduced by adaptively allocating objects: feedback-directed allocation policy Status: In the process of implementing & evaluating in the OpenJDK 25

Thank you! 26