Multicore Garbage Collection with Local Heaps

Simon Marlow and Simon Peyton Jones

Abstract

In a parallel, shared-memory, language with a garbage collected heap, it is desirable for each processor to perform minor garbage collections independently. Although obvious, it is difficult to make this idea pay off in practice, especially in languages where mutation is common. We present several techniques that substantially improve the state of the art. We describe these techniques in the context of a full-scale implementation of Haskell, and demonstrate that our local-heap collector substantially improves scaling, peak performance, and robustness.

Details

Publication typeInproceedings
Published inISMM '11: Proceedings of the 10th International Symposium on Memory Management
PublisherACM
> Publications > Multicore Garbage Collection with Local Heaps