Haskell中自动并行化的当前状态

10
可能有重复:Haskell中的多核编程现状如何? 在GHC特别是现在的状态是什么?它是否已经流行,还是仍处于实验阶段?
编译器在决定何时以及如何并行化时有多细致/精细?运行时是否适当地选择线程池的大小,或者我们必须通过命令行指定?

谁刚刚给我点了踩?我失去了2个声望值!!! - Phil
3个回答

5
长答案在Don的回复中提供的论文中。短答案:
1. GHC不会自动并行化您的程序。 2. 然而,通过par组合子,它可以非常容易地引入并行性。更高级别的接口是Don提到的"strategies"。 3. 添加par是否会加速您的程序取决于您的算法。好处是,没有任何陷阱--除非您欺骗类型系统,否则无法引入死锁或竞争条件。

4

GHC目前的调度、线程池和迁移策略在论文“运行时支持多核Haskell”中有描述。在撰写本文时,“策略”风格的半自动并行性已被广泛使用。


2
也许你说的“自动并行”是指数据并行Haskell?根据我的观察,关于这个项目最新的信息可以在Simon Peyton Jones的视频演示中找到(2010年4月)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接