[Haskell-cafe] GHC threaded runtimes and pure functions

Gregory Propf gregorypropf at yahoo.com
Wed Sep 16 09:17:01 EDT 2009

One of the things I liked about Haskell was the notion of pure functions and the fact that they can be, in theory, automatically parallelized on multicore hardware. I think this will become a huge deal in a few years as cores multiply.  My question is simply this: under GHC is this what really happens with, say a mapping over a pure function.  Yes, I compiled with --threaded and am using the +RTS -N2 options on my dual core machine.  Here's the code I wrote as a speed test.  It just doesn't seem any faster with -N2.  Using the ps command I found that multiple threads are indeed launched (this is Linux) but all but one show as being in a state of waiting for some event to finish (the ps output flags them all 'Sl'.

main = do rg <- getStdGen
          let rs = take 10000000 $ randomRs (1::Int,100000::Int) rg
              rs'= map (\n -> n*n) rs
          print rs'

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090916/c9ed98b2/attachment.html

More information about the Haskell-Cafe mailing list