Parallelizing the Weak Pointer Lock

Simon Marlow marlowsd at gmail.com
Thu May 29 07:38:08 UTC 2014


On 28/05/2014 12:16, Edward Kmett wrote:
> How hard /would/ it be to replace the global weak pointer lock with
> something that scales better?
>
> I'm looking at switching some of my older BDD code into Haskell.
>
> To do so I'd love to be able to use an "intuitive" weak-pointer based
> cache management scheme, but I have to confess the notion of a global
> lock getting in the way basically damns whatever solution I come up with
> to be a single-threaded toy. =/
>
> If I'm trying to sell Haskell's parallelism to others, it seems my only
> winning moves right now are:
>
> 1.) play less satisfying games with typed regions, which scale less well
> than the tried and tested solutions of GCing hash-consed BDD structures.
>
> 2.) just tackle the problem that allocating a weak pointer grabs a
> global lock.
>
> 3.) not to play the game

Do you know that the global lock is the bottleneck?  I suggest trying it 
first, if it's not too hard to do the experiment.  Then we'll know how 
big an issue we're dealing with.

Cheers,
Simon


More information about the ghc-devs mailing list