School of Computing

Back to planned seminars page

Abstract for Seminar

In this talk I will describe our experience with building a parallel garbage collector for Haskell. The story begins in 2008 with our first parallel collector that demonstrated scaling on a multicore with single-threaded programs but performed poorly with parallel programs. Following on from that we found that by paying attention to locality we could improve scaling for parallel programs too, but this leads to a tension between collecting the heap more often to improve locality, and the synchronisation overhead of frequent collections which increases with the number of cores. Our current work aims to break this tension by building a garbage collector with independently collectable per-processor heaps which, we hope, will enable good scaling beyond a small number of cores. Similar collector designs have been previously been reported in the literature, but real working implementations that demonstrate improvements are scarce; I will present results from our implementation in the context of a production compiler, and explain how we overcame some of the problems with these existing designs.

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 20/10/2010