DiffArray Performance

Simon Marlow simonmar at microsoft.com
Wed Nov 5 15:40:14 EST 2003

> >never used in multi-threaded situation.
> Erm, nearly all my code in Haskell is multi-threaded. One of the 
> main reasons why I am using haskell is the low-cost light weight
> multi-threading. Surely this is a big win for Haskell on SMP/Numa
> machines - which are surely the future - as even Intel have realised
> they can't just keep ramping up clock speeds and have gone multi-core
> for their next pentium iteration. Just look at the benchmarks for the
> multi-cpu opteron machines!
> I would hesitate to make any type unsafe for multi-threading 
> by default - I
> think all the guards should be in as standard ... maybe a compile time
> (or run-time) flag to replace the guards with NO-OPS for single CPU
> machines might be a sensible option.

Since there seems to have been a bit of confusion in this thread, I
thought I ought to clear it up.

The issue is not about single vs. multiple CPU operation.  GHC only runs
code on a single CPU at the moment, due to the difficulties involved in
sharing a heavily used resource (the heap) between multiple threads.

The problem was whether DiffArrays should be thread-safe in the
Concurrent Haskell sense, which means protecting access to the DiffArray
with an MVar.


More information about the Glasgow-haskell-users mailing list