
23 Apr
2008
23 Apr
'08
4:01 p.m.
On Wed, 23 Apr 2008, Sebastian Sylvan wrote:
On Wed, Apr 23, 2008 at 5:01 PM, Tillmann Vogt
wrote: I am currently experimenting with parallelizing C-programs. I have therefore written a matrix vector multiplication example that needs 13 seconds to run (5 seconds with OpenMP). Because I like Haskell I did the same in this language, but it takes about 134 seconds. Why is it so slow? Does someone have an idea?
Yes, in the C version you use unboxed arrays, in the Haskell version you use a linked list of linked lists. Naturally the latter will take up more space, require more work to index, and will thrash the cache quite a bit.
For full speed matrix computations see http://alberrto.googlepages.com/gslhaskell