Design, Implementation and Evaluation of Garbage Collectors with MMTk

Presenters: Steve Blackburn, Perry Cheng

Why is GC important and what are the challenges?

Enormous commercial interest in languages such as Java and C# has fueled a resurgence in garbage collection research.  The major breakthroughs were in the early 60's (reference counting and tracing collection) and mid 80's (generational collection).  It is sobering to realize that Ungar's work on generational collection, core to most modern GC implementations, was evaluated on a Sun 1.  Since then programming languages and architectures have changed significantly, throwing into question many of the assumptions made by early work in the field.  Furthermore, as garbage collected languages become ubiquitous and are applied to performance critical applications, the performance goals for garbage collection become more acute.  This emphasis on performance has highlighted the need for improved methodology for evaluating memory management performance.

What is MMTk?

MMTk is a memory management toolkit designed to allow rapid development of new garbage collection ideas, and to provide a common platform for apples-to-apples evaluation of garbage collection algorithms.  It is implemented in Java, within Jikes RVM.  MMTk is designed to be portable and has recently been ported to the shared source CLI, Rotor.  Steve and Perry designed and implemented MMTk with their colleague, Kathryn McKinley.

What are the tutorial goals?

This tutorial will cover the design, implementation and evaluation of garbage collection algorithms from the perspective of MMTk.  The tutorial is aimed at researchers and implementers of garbage collectors and virtual machines.  Topics will include: co-designing a virtual machine and its memory management subsystem; designing and implementing a garbage collection algorithm in MMTk; and methodology for evaluating memory management performance.  The tutorial will include a live demonstration where we will build and run a non-trivial collector in MMTk from scratch.

What will you learn?

Who are the presenters?

Steve is at the Department of Computer Science, the Australian National University.  MMTk is the second memory management toolkit Steve has developed.  Steve's research focus is on memory management and memory performance.  With his colleagues he has developed a number of new GC algorithms, including Beltway, Ulterior Reference Counting, TMOS, and CopyMS.  He has a particular interest in new methodologies for analysis and performance comparison.

Perry is a researcher at IBM Research Watson.  His thesis work involved the design and evaluation of a number of garbage collectors, including a parallel real-time collector for ML.  His experience includes working with functional, imperative, and object-oriented languages in the context of language design, compilers, and runtime systems.  Since moving to IBM Research, he developed MMTk and a new real-time GC algorithm under the Metronome project and has worked with both research and product JVMs.