Sorry, to make it more clear: in the line: > write a (a'!(i-1) + a!(i-2)) only > (a'!(i-1) + a!(i-2)) would need to be parallel, as there we typically have a sum/minimum or whatever. The forM_ over each index does not need to be, since we have to fill the array anyway...
* Christian Höner zu Siederdissen <choe...@tbi.univie.ac.at> [04.05.2010 01:22]: > Hi, > > on that topic, consider this (rather trivial) array: > > a = array (1,10) [ (i,f i) | i <-[1..10]] where > f 1 = 1 > f 2 = 1 > f i = a!(i-1) + a!(i-2) > > (aah, school ;) > > Right now, I am abusing vector in ST by doing this: > > a <- new > a' <- freeze a > forM_ [3..10] $ \i -> do > write a (a'!(i-1) + a!(i-2)) > > Let's say I wanted to do something like this in dph (or repa), does that > work? We are actually using this for RNA folding algorithms that are at > least O(n^3) time. For some of the more advanced stuff, it would be > really nice if we could "just" parallelize. > > To summarise: I need arrays that allow in-place updates. > > Otherwise, most libraries that do heavy stuff (O(n^3) or worse) are > using vector right now. On a single core, it performs really great -- > even compared to C-code that has been optimized a lot. > > Thanks and "Viele Gruesse", > Christian
pgpawRU6f000g.pgp
Description: PGP signature
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users