Download presentation
Presentation is loading. Please wait.
Published byΣοφός Γιάνναρης Modified over 5 years ago
1
Parallel GC and Heap Management in Poly/ML and Isabelle
David C.J. Matthews
2
Summary Minor GC Major GC Sharing pass Heap sizing
3
Poly/ML and Isabelle Poly/ML Isabelle David Matthews Larry Paulson
Tobias Nipkow Makarius Wenzel
4
Standard ML Mutable data Immutable data Mostly immutable
Ref Array Mutex / Condition variable Immutable data List Closure Mostly immutable Most cells have short lifetime Equality of immutables is by value
5
Minor Collector Values initially allocated in allocation area
Copying collector Mutable cells to mutable area Immutable cells to immutable area Only mutable area is scanned for roots
6
Parallelising Minor Collector
Multiple threads process roots Work sharing Lock-free update of forwarding pointers No locking on immutable data Weak coherence
7
Major GC Mark-sweep Compacting
8
Parallelising Major GC
Lock-free marking Marking is idempotent Sweep phase can operate on separate segments
9
Sharing phase Combine cells with same contents
Recursively apply for lists and trees Quicksort Parallel Expensive - O(n log n) Reduces the live heap size
10
Heap sizing Paging Live data GC Cost Heap size
11
Heap sizing: Small Live Data
GC Cost Target Heap size
12
Heap sizing: Large live data
GC Cost Target Heap size
13
Heap sizing Estimate a cost function Calculate a minimum
Trigger sharing pass
14
Parallel Isabelle
15
JinjaThreads: 64 bit
16
JinjaThreads: 32 bit
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.