[Haskell-cafe] concurrency vs. I/O in GHC

Erik Hesselink hesselink at gmail.com
Thu Oct 28 15:10:33 EDT 2010


On Thu, Oct 28, 2010 at 19:06, Andrew Coppin
<andrewcoppin at btinternet.com> wrote:
> On 28/10/2010 09:25 AM, Erik Hesselink wrote:
>>
>> On Wed, Oct 27, 2010 at 23:09, Andrew Coppin
>> <andrewcoppin at btinternet.com>  wrote:
>>>
>>> GHC has a _parallel_ GC implementation, meaning that the GC event runs in
>>> parallel on several cores. But it does not (yet) have _concurrent_ GC,
>>> meaning that a GC event can happen at the same time as Haskell threads
>>> are
>>> running. (Basically, which Haskell code running, the references between
>>> objects could change while the GC engine is trying to analyse them, which
>>> would be Bad.) I understand that the developers are actively working on
>>> fixing this, since it can sometimes have a significant effect on the
>>> performance of multicore programs...
>>
>> I thought that young generations could be GC'ed while other threads
>> were running, while collecting the old generation required
>> synchronizing all threads. This seems to be what is shown on
>> http://hackage.haskell.org/trac/ghc/blog/new-gc-preview as well.
>
> "I expect it to land in GHC HEAD in a few months time, and it should be in
> the autumn 2011 major release of GHC."
>
> In other words, this isn't how GHC works now, it's how some future version
> will work.

Ah, sorry, I missed that.

Erik


More information about the Haskell-Cafe mailing list