Presentation is loading. Please wait.

Presentation is loading. Please wait.

Parallel GC and Heap Management in Poly/ML and Isabelle

Similar presentations


Presentation on theme: "Parallel GC and Heap Management in Poly/ML and Isabelle"— Presentation transcript:

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


Download ppt "Parallel GC and Heap Management in Poly/ML and Isabelle"

Similar presentations


Ads by Google