[Haskell] Matrix multiplication

Don Stewart dons at galois.com
Sat May 3 15:03:59 EDT 2008


Tillmann.Vogt:
> Hi,
> 
> Thanks for all your nice replies. I did this matrix-multiplication 
> experiment for a seminar on multithreading where I have to give a talk 
> on Unified Parallel C. At first I thought I should not mention haskell 
> as an alternative because of the speed. But now I might do some slides 
> about the advantages/(disadvantages?) of side-effekt free languages, 
> maybe ndp. In my opinion these C extension are not a nice solution. 
> Unified Parallel C parallelizes only for-loops and distributes the 
> workload by uniformly cutting an array in pieces and then setting an 
> "affinity" so that a CPU works on that data. The trick they are really 

This sounds very similar to nested data parallelism, so probably worth
talking about.

    http://haskell.org/haskellwiki/Data_Parallel_Haskell

The key trick is that instead of only knowing how to parallelise (pure)
for-loops, a whole suite of combinators can be parallelised, and on
nested structures. So, quite promising.

> proud of is that the compiler knows in this way where to put the data in 
> a NUMA-system (Non-Uniform Memory Architecture). I am not really sure if 
> this language extension can cope with programs where pieces need 
> considerably different calulation times.

Interesting.
  
> I forgot to mention that I used ghc 6.8.2 and sorry for that stupid 
> example (a had to take something that fits on a presentation-slide).

-- Don


More information about the Haskell mailing list