[Haskell-cafe] Basic questions about concurrency in Haskell

Thomas Witzel witzel.thomas at gmail.com
Wed Aug 5 13:59:00 EDT 2009


Hello all,

I'm new to Haskell, but have a good background in LISP/Scheme and do
mostly C/C++ programming on a daily basis. I'm learning Haskell mainly
because it provides facilities for concurrency on the language level,
and I'm mainly interested in implementing parallel or massively
parallel algorithms with Haskell. I have two questions that bother me.

1. Does the Haskell compiler make sure that there is no page sharing
between threads, in order to avoid cache thrashing between cpus (a
real killer on large SMP or ccNUMA systems) ? If so, are there
functions/options to control this ?

2. I started with the very simple nfib example given in the manual for
Control.Parallel (Section 7.18). On my systems using multiple cores
makes the code actually slower than just using a single core. While
the manual cautions that this could be the case for certain
algorithms, I'm wondering whether this is the desired behaviour for
this example.

I'm using ghc 6.10.4 right now.

Thank you for your help getting me started here.

Thomas


More information about the Haskell-Cafe mailing list