【发布时间】:2014-11-22 22:37:02
【问题描述】:
在 haskell 中,假设我有以下形式的函数调用:foo a b,其中a 不依赖于b,反之亦然。似乎可以自动检测到 a 和 b 可以并行评估,但在 GHC 中似乎并非如此。相反,需要使用像 par 这样的结构来表示可以并行评估的内容。
那么,为什么haskell 中的并行化不能自动发生呢?或者如果它已经存在,为什么还会存在 par 这样的结构?
【问题讨论】:
-
自动并行的问题在于它增加了开销,并且很难自动确定两个表达式的并行评估是否会带来好处。
-
@PetrPudlák 所以问题不在于该原理不起作用,而是它的收益不是很大,甚至可能会变慢?
标签: haskell parallel-processing