[Haskell-beginners] Performance of parallel mergesort
jon at ffconsultancy.com
Wed Dec 23 21:24:19 EST 2009
For some reason all traffic from this beginners list stopped reaching me after
the 13th of December.
Thanks for the response, Antoine. I've tried to install more recent versions
of GHC (6.10 and 6.12) but I cannot get either of them to work at all.
GHC 6.8 generates code that segfaults and the GHC 6.10 from Debian testing
cannot compile anything for me. So I thought I'd try GHC 6.12. That isn't in
any repo so I decided to build it from source. I uninstalled all other GHCs
to give it a fresh start. The GHC page says "Stop, install the Haskell
Platform" but the Haskell Platform says you must install GHC first, so I've
got a nice circular dependency right from the start!
So I tried installing GHC 6.12 from source but that requires GHC to be
installed. So I installed GHC 6.8 (the one that segfaults) using apt again
from Debian. That seems to have built a GHC 6.12 that I can run from the
command line but it cannot compile that program because it doesn't have
parallel stuff. So I thought I'd install the Haskell Platform.
Unfortunately, the Haskell Platform configure script gives the nonsensical
error that I must "upgrade" from GHC 6.12 down to GHC 6.10. I was getting
pretty run down by this point so I just told it to sod off using
the --enable-unsupported-ghc-version command line option. The Haskell
Platform's configure script then completed but building it failed with:
[21 of 21] Compiling Graphics.UI.GLUT ( Graphics/UI/GLUT.hs,
Setup: GLUT-126.96.36.199: dependency
"OpenGL-188.8.131.52-182b091280ce0de861295bc592bae77c" doesn't exist (use --force
Building the GLUT-184.108.40.206 package failed
make: *** [build.stamp] Error 2
I have glut and use it all the time from OCaml without a hitch so I've no idea
what the problem is here.
Oh well, I just discovered that installing GHC 6.12 has at least fixed GHC
6.10 so it can now compile and run that mergesort. Oh FFS, spoke too soon:
$ time ./mergesort +RTS -N8
Stack space overflow: current size 8388608 bytes.
Use `+RTS -Ksize' to increase it.
Dr Jon Harrop, Flying Frog Consultancy Ltd.
More information about the Beginners