[Haskell-cafe] Re: Scarry parallel garbage collection behavior
(6.12.1, Mac OSX)
Simon Marlow
marlowsd at gmail.com
Mon Feb 22 09:10:55 EST 2010
On 19/02/2010 21:26, Pavel Perikov wrote:
> This is a long post, sorry. The bottom line: specifying +RTS -Nn where n> number of cores slows the program compiled with 6.12.1 by orders of magnitude under Mac OSX. Turning off parallel garbage collections with -qg
> resolves the problem. Independent verification is appreciated.
The parallel GC currently requires all cores to synchronise, so if
you're trying to use more cores than you actually have, you can expect
the cost of that synchronisation to be high. Having said that, the cost
is higher than we would like mainly due to the use of spinlocks for
synchronisation - spinlocks turned out to be the fastest way to
synchronise when all the threads are running, but are quite bad when
some threads have been descheduled (as would be the case if you are
using more threads than you have cores). So in 6.12.2 there will be
some changes that reduce the overhead quite significantly, see
http://hackage.haskell.org/trac/ghc/ticket/3758
and
http://ghcmutterings.wordpress.com/2010/01/25/yielding-more-improvements-in-parallel-performance/
Cheers,
Simon
More information about the Haskell-Cafe
mailing list