Gmane
From: Simon Marlow <marlowsd <at> gmail.com>
Subject: HEADS UP: parallel GC branch merge incoming
Newsgroups: gmane.comp.lang.haskell.cvs.ghc
Date: 2008-06-17 14:32:04 GMT (1 year, 2 weeks, 2 days and 7 hours ago)
I'm about to dump 140 patches into HEAD from my parallel GC branch.  It's 
hard to get an overview of what's going in with the long history of this 
branch, so here's a summary:

  * parallel GC: Use +RTS -g<n> (e.g. +RTS -g2) to run the GC on multiple
    cores.  Automatically enabled with +RTS -N<n>.

  * stack shrinking: if the stack shrinks a long way below its
    high-water-mark, we return some of its memory.

  * Much improved scaling with lots of threads (see #1589)

  * +RTS -s- is shorthand for +RTS -sstderr, and the output has a few more
    interesting stats (e.g. overhead due to slop and fragmentation)

  * a space leak when using par/strategies was fixed (#2185)

  * experimental "mark-region" GC strategy, along the lines of
    http://cs.anu.edu.au/~Steve.Blackburn/pubs/papers/immix-pldi-2008.pdf
    Enabled with +RTS -w.  (implemented while at ISMM/PLDI last week :-)

Doc updates are in progress and will follow shortly.

The paper describing the parallel GC is here:

http://www.haskell.org/~simonmar/bib/parallel-gc-08_abstract.html

In a quick test on my dual-core laptop, using +RTS -g2 saves about 45 
seconds out of 12 minutes in a stage3 build (stage2 was unoptimised).  This 
was with a small default heap (-H16m); a larger heap would probably gain more.

Cheers,
	Simon