
Hello, I'm searching a way to benefit from modern hardware in my programs. I consider parallel programing to be actually easier than sequential one. Parallel computation allows to avoid sophisticated algorithms that were developed to gain performance on sequential architecture. It should also allow to stop bothering about using immutable objects --- immutable parallel arrays should be as fast as mutable ones, right? (provided there is enough cores) So what are the options to write a pure functional parallel code with the level of abstraction I used in Haskell? So far I've found Data Parallel Haskell for multicore CPU's and Data.Array.Accelerate for GPU's. It would be nice to have something at the release state, rather than some beta.

You could look into par and pseq combinators and parallel strategies[1]. Real world haskell[2] has some examples on the usage. 1. http://hackage.haskell.org/package/parallel 2. http://book.realworldhaskell.org/read/concurrent-and-multicore-programming.h... -- Mats Rauhala

to write a pure functional parallel code with the level of abstraction I used in Haskell?
The status of parallel programming in Haskell is loosely maintained here:
http://stackoverflow.com/questions/3063652/whats-the-status-of-multicore-pro...
Your options, as of today,
* The par-monad package and a monad for deterministic parallelism,
Simon Marlow -- more control over pure parallelism than
strategies/par/pseq.
* The "parallel" package
* Repa (parallel arrays)
* DPH (for more experimenetal use)
* Explict thread-based shared memory concurrency and multicore
parallelism (forkIO/MVars/STM)
On Tue, Apr 19, 2011 at 11:51 AM, Grigory Sarnitskiy
Hello, I'm searching a way to benefit from modern hardware in my programs.
I consider parallel programing to be actually easier than sequential one. Parallel computation allows to avoid sophisticated algorithms that were developed to gain performance on sequential architecture. It should also allow to stop bothering about using immutable objects --- immutable parallel arrays should be as fast as mutable ones, right? (provided there is enough cores)
So what are the options to write a pure functional parallel code with the level of abstraction I used in Haskell? So far I've found Data Parallel Haskell for multicore CPU's and Data.Array.Accelerate for GPU's. It would be nice to have something at the release state, rather than some beta.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (3)
-
Don Stewart
-
Grigory Sarnitskiy
-
Mats Rauhala