Task-aware Garbage Collection in a Multi-Tasking Virtual Machine Sunil Soman Laurent Daynès Chandra Krintz RACE Lab, UC Santa Barbara Sun Microsystems.

Slides:



Advertisements
Similar presentations
A Block-structured Heap Simplifies Parallel GC Simon Marlow (Microsoft Research) Roshan James (U. Indiana) Tim Harris (Microsoft Research) Simon Peyton.
Advertisements

U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 1 MC 2 –Copying GC for Memory Constrained Environments Narendran Sachindran J. Eliot.
A Study of Garbage Collector Scalability on Multicores LokeshGidra, Gaël Thomas, JulienSopena and Marc Shapiro INRIA/University of Paris 6.
Steve Blackburn Department of Computer Science Australian National University Perry Cheng TJ Watson Research Center IBM Research Kathryn McKinley Department.
1 Write Barrier Elision for Concurrent Garbage Collectors Martin T. Vechev Cambridge University David F. Bacon IBM T.J.Watson Research Center.
Automatic Memory Management Noam Rinetzky Schreiber 123A /seminar/seminar1415a.html.
Assessing the Scalability of Garbage Collectors on Many Cores (Funded by ANR projects: Prose and ConcoRDanT) Lokesh GidraGaël Thomas Julien SopenaMarc.
MC 2 : High Performance GC for Memory-Constrained Environments - Narendran Sachindran, J. Eliot B. Moss, Emery D. Berger Sowmiya Chocka Narayanan.
Locality-Conscious Lock-Free Linked Lists Anastasia Braginsky & Erez Petrank 1.
By Jacob SeligmannSteffen Grarup Presented By Leon Gendler Incremental Mature Garbage Collection Using the Train Algorithm.
MC 2 : High Performance GC for Memory-Constrained Environments N. Sachindran, E. Moss, E. Berger Ivan JibajaCS 395T *Some of the graphs are from presentation.
Log-Structured Memory for DRAM-Based Storage Stephen Rumble, Ankita Kejriwal, and John Ousterhout Stanford University.
NUMA Tuning for Java Server Applications Mustafa M. Tikir.
ParMarkSplit: A Parallel Mark- Split Garbage Collector Based on a Lock-Free Skip-List Nhan Nguyen Philippas Tsigas Håkan Sundell Distributed Computing.
Free-Me: A Static Analysis for Individual Object Reclamation Samuel Z. Guyer Tufts University Kathryn S. McKinley University of Texas at Austin Daniel.
OOPSLA 2003 Mostly Concurrent Garbage Collection Revisited Katherine Barabash - IBM Haifa Research Lab. Israel Yoav Ossia - IBM Haifa Research Lab. Israel.
1 The Compressor: Concurrent, Incremental and Parallel Compaction. Haim Kermany and Erez Petrank Technion – Israel Institute of Technology.
This presentation: Sasha GoldshteinCTO, Sela Group Garbage Collection Performance Tips.
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science CRAMM: Virtual Memory Support for Garbage-Collected Applications Ting Yang, Emery.
UPortal Performance Optimization Faizan Ahmed Architect and Engineering Group Enterprise Systems & Services RUTGERS
JETT 2003 Java.compareTo(C++). JAVA Java Platform consists of 4 parts: –Java Language –Java API –Java class format –Java Virtual Machine.
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
Age-Oriented Concurrent Garbage Collection Harel Paz, Erez Petrank – Technion, Israel Steve Blackburn – ANU, Australia April 05 Compiler Construction Scotland.
Multitasking JVMs Isolates and KaffeOS Presentation by James Rose.
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science Garbage Collection Without Paging Matthew Hertz, Yi Feng, Emery Berger University.
1 An Efficient On-the-Fly Cycle Collection Harel Paz, Erez Petrank - Technion, Israel David F. Bacon, V. T. Rajan - IBM T.J. Watson Research Center Elliot.
Chapter 11 Operating Systems
Scalable Locality- Conscious Multithreaded Memory Allocation Scott Schneider Christos D. Antonopoulos Dimitrios S. Nikolopoulos The College of William.
1 Reducing Generational Copy Reserve Overhead with Fallback Compaction Phil McGachey and Antony L. Hosking June 2006.
Comparison of JVM Phases on Data Cache Performance Shiwen Hu and Lizy K. John Laboratory for Computer Architecture The University of Texas at Austin.
G1 TUNING Shubham Modi( ) Ujjwal Kumar Singh(10772) Vaibhav(10780)
UniProcessor Garbage Collection Techniques Paul R. Wilson University of Texas Presented By Naomi Sapir Tel-Aviv University.
Garbage Collection Memory Management Garbage Collection –Language requirement –VM service –Performance issue in time and space.
SEG Advanced Software Design and Reengineering TOPIC L Garbage Collection Algorithms.
CLR: Garbage Collection Inside Out
Flexible Reference-Counting-Based Hardware Acceleration for Garbage Collection José A. Joao * Onur Mutlu ‡ Yale N. Patt * * HPS Research Group University.
The Impact of Performance Asymmetry in Multicore Architectures Saisanthosh Ravi Michael Konrad Balakrishnan Rajwar Upton Lai UW-Madison and, Intel Corp.
Exploring Multi-Threaded Java Application Performance on Multicore Hardware Ghent University, Belgium OOPSLA 2012 presentation – October 24 th 2012 Jennifer.
Ulterior Reference Counting: Fast Garbage Collection without a Long Wait Author: Stephen M Blackburn Kathryn S McKinley Presenter: Jun Tao.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Threads and Processes.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Dynamic Object Sampling for Pretenuring Maria Jump Department of Computer Sciences The University of Texas at Austin Stephen M. Blackburn.
Message Analysis-Guided Allocation and Low-Pause Incremental Garbage Collection in a Concurrent Language Konstantinos Sagonas Jesper Wilhelmsson Uppsala.
Computer Science Department Daniel Frampton, David F. Bacon, Perry Cheng, and David Grove Australian National University Canberra ACT, Australia
September 11, 2003 Beltway: Getting Around GC Gridlock Steve Blackburn, Kathryn McKinley Richard Jones, Eliot Moss Modified by: Weiming Zhao Oct
Investigating the Effects of Using Different Nursery Sizing Policies on Performance Tony Guan, Witty Srisa-an, and Neo Jia Department of Computer Science.
A summary by Nick Rayner for PSU CS533, Spring 2006
Garbage Collection and Classloading Java Garbage Collectors  Eden Space  Surviver Space  Tenured Gen  Perm Gen  Garbage Collection Notes Classloading.
UniProcessor Garbage Collection Techniques Paul R. Wilson University of Texas Presented By Naomi Sapir Tel-Aviv University.
Department of Computer Science and Software Engineering
Processes and Virtual Memory
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Virtual Memory Implementation.
® July 21, 2004GC Summer School1 Cycles to Recycle: Copy GC Without Stopping the World The Sapphire Collector Richard L. Hudson J. Eliot B. Moss Originally.
GC Assertions: Using the Garbage Collector To Check Heap Properties Samuel Z. Guyer Tufts University Edward Aftandilian Tufts University.
.NET Garbage Collection Performance Tips Sasha Goldshtein | SELA Group.
Log-Structured Memory for DRAM-Based Storage Stephen Rumble and John Ousterhout Stanford University.
Multitasking without Compromise: a Virtual Machine Evolution
Institute of Parallel and Distributed Systems (IPADS)
Processes and threads.
Topic: Java Garbage Collection
Java 9: The Quest for Very Large Heaps
Runtime Analysis of Hotspot Java Virtual Machine
HashKV: Enabling Efficient Updates in KV Storage via Hashing
Ulterior Reference Counting Fast GC Without The Wait
Patrick Dussud Technical Fellow Developer Division
Strategies for automatic memory management
Beltway: Getting Around Garbage Collection Gridlock
José A. Joao* Onur Mutlu‡ Yale N. Patt*
New GC collectors in Java 11
Presentation transcript:

Task-aware Garbage Collection in a Multi-Tasking Virtual Machine Sunil Soman Laurent Daynès Chandra Krintz RACE Lab, UC Santa Barbara Sun Microsystems Labs

2 Outline  Introduction  MVM overview  Task-aware collection Performance isolation Fast, immediate resource reclamation Independent allocation & young gen collection  Evaluation  Conclusion

3 Introduction  Multi-tasking VMs Multiple users/applications Improved startup Reuse & sharing Performance isolation Accounting & timely resource reclamation  Sharing/performance isolation conflict Loss of scalability Bottleneck: memory management system

4 MVM overview  Multiple isolated instances in same VM Implements Isolates API (JSR 121) Safety & isolation guaranteed  Task re-entrance Class sharing Separate task-dependent parts, rest shared Accessed thru table indexed by unique task id  Based on Hotspot VM Generational mark-compact GC

5 MVM Garbage Collection  Shared generational heap Scavenged young gen (eden & survivor spaces) 4 phase mark-compact collected old generation Card table for tracking mature to young pointers edenoldpermanentfromtoyoung

6 MVM Garbage Collection  Lack of “task awareness” Scalability & performance isolation Space occupied by dead tasks reclaimed on GC Parameter virtualization

7 Task-aware collection  Performance isolation Hybrid heap layout Task-concurrent scavenging  Fast, immediate resource reclamation Without requiring full or partial GC

8 Hybrid heap layout edenoldpermanenttofrom eden from to.... eden from to Per-task

9 Hybrid heap layout: young gen

10 Hybrid heap layout: Old gen  Promotion Area Buffers Per-task old generation regions Allocated on demand Adjusted on full heap GC Used for scavenging & pretenuring  Provide Performance isolation GC-less reclamation on task termination Per-task card table scanning Enabled due to precise accounting of old gen

11 Resource Reclamation Allocation top Free PABsTask 2 Allocation top Task 3Task Allocation top

12 Task-concurrent Scavenging  Leverages hybrid heap design  Mutators can execute during scavenge  Concurrent old gen direct allocation  Synchronization Threads belonging to GC initiator stopped Threads poll on protected page Suspended on access fault Threads belonging to other tasks not suspended

13 Evaluation time long app short app …  Experimental setup Dual UltraSPARC 1.5GHz, Solaris 10 Dacapo & Spec98 benchmarks  Throughput & Response time # short apps & average pause time Hybrid heap layout vs Shared heap

14 Results: Thruput & resp. time Short (javac w/small input) + long running program (jess, jack, ps)

15 Evaluation  Concurrent execution performance Hybrid heap + task-conc. scavenging vs shared Instances of same task run concurrently 1 thru 5 instances  GC time & # GCs  End-to-end execution time

16 Concurrent Exec: GC Time 62%54%100%

17 Concurrent Exec: Change in GCs

18 Concurrent Exec: Exec. Time

19 Related Work  Prior MVM  Thread-local heaps [ Domani ’02, Steensgaard ’00 ]  Isolation [ Back ’05 ]  Card table/remset opt [ Azagury ’98, Detlefs ’02 ]

20 Summary  Task-aware collection Performance isolation Immediate, GC-free reclamation Heap layout, mechanisms & perf. evaluation Significantly improves overall execution, throughput & response time

21 Future Work  Better multi-tasking workloads  Old generation collection Independent collection of PABs Different collection policies  Automatic performance tuning Per-application tuning of GC parameters  Global management