Haskell中自动并行的当前状态

时间:2011-01-15 18:00:50

标签: optimization haskell parallel-processing multicore ghc

  

可能重复:
  What's the status of multicore programming in Haskell?

GHC的状况如何?它还很受欢迎,还是仍在实验中?

编译器在决定何时以及如何并行化方面有多细致/细粒度?运行时是否适当地选择了线程池的大小,或者我们必须通过命令行指定?

3 个答案:

答案 0 :(得分:5)

答案很长,这篇论文与唐的回应有关。简短的回答:

  1. GHC不会自动并行化您的程序。

  2. 但是,通过par组合器很容易引入并行性。更高级别的接口是提到的"strategies" Don。

  3. 简单地添加par是否会加速您的程序,在很大程度上取决于您的算法。好处是,没有陷阱 - 你不能引入死锁或种族(除非你在欺骗类型系统)。

答案 1 :(得分:4)

GHC的当前调度,线程池和迁移策略在文档“Runtime Support for Multicore Haskell”中描述。在撰写本文时,“策略”风格 - 自动并行主义被广泛使用。

答案 2 :(得分:2)

也许通过“自动并行”你的意思是Data Parallel Haskell?据我所知,有关此项目的最新信息可从2010年4月a video presentation by Simon Peyton Jones开始提供。