Possible Duplicate:
What's the status of multicore programming in Haskell?
What is the status especially in GHC? Is it popular yet, or still being experimental?
How careful/fine-grained is the compiler in deciding when and how to parallelize? Does the run-time choose the threadpool's size appropriately or we have to specify through command line?
The long answer is the paper linked in Don's response. The short answer:
GHC does not automatically parallelise your program.
However, it makes it very easy to introduce parallelism via the par
combinator. The higher-level interface to this are the "strategies" Don mentioned.
Whether simply adding par
will speed up your program depends very much on your algorithm. The upside is, there are no gotchas -- you can't introduce deadlocks or races (unless you're cheating the type system).
GHC's current scheduling, thread pool and migration policies are described in the paper "Runtime Support for Multicore Haskell". The "strategies" style semi-automatic parallelism is quite widely used, at the time of writing.
Perhaps by "automatic parallelism" you meant Data Parallel Haskell? As far as I have seen the most current information about this project is available in a video presentation by Simon Peyton Jones, from April 2010.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With