I've carefully
followed the instructions in Real World Haskell for parallel
sorting:
In
SortMain.hs
1. Set
testfunction=sort
Then del *.o
(force recompilation)
ghc --make -O2
sortMain.hs
run SortMain and I
get 500000 numbers => 3.9735 sec.
2. Set testFunction
= parSort2 2
del *.o
ghc -threaded --make
-O2 sortMain.hs
run SortMain +RTS
-N2 -RTS, I get => 5.3 sec
run SortMain +RTS -N1 -RTS, I get
=> 4.3
sec
With the +RTS -s
option I get 3 SPARK3 (3 converted, 0 pruned)
All other
testFunctions are worse.
I have a dual
core computer that runs Windows XP.
I've experimented a
lot with par, pseq ... in other programs. I almost always get a few hundred
sparks. Half of them are converted and the other half gets pruned. But I never
got a faster program (then sequential).
What am I doing
wrong, any ideas?
Kees