可能重复:
What's the status of multicore programming in Haskell?
GHC的状况如何?它还很受欢迎,还是仍在实验中?
编译器在决定何时以及如何并行化方面有多细致/细粒度?运行时是否适当地选择了线程池的大小,或者我们必须通过命令行指定?
答案 0 :(得分:5)
答案很长,这篇论文与唐的回应有关。简短的回答:
GHC不会自动并行化您的程序。
但是,通过par
组合器很容易引入并行性。更高级别的接口是提到的"strategies" Don。
简单地添加par
是否会加速您的程序,在很大程度上取决于您的算法。好处是,没有陷阱 - 你不能引入死锁或种族(除非你在欺骗类型系统)。
答案 1 :(得分:4)
GHC的当前调度,线程池和迁移策略在文档“Runtime Support for Multicore Haskell”中描述。在撰写本文时,“策略”风格半 - 自动并行主义被广泛使用。
答案 2 :(得分:2)
也许通过“自动并行”你的意思是Data Parallel Haskell?据我所知,有关此项目的最新信息可从2010年4月a video presentation by Simon Peyton Jones开始提供。