【发布时间】:2016-02-13 22:08:44
【问题描述】:
鉴于以下 Python 示例,我想知道如何在 Haskell 中实现高效且并行的等效代码。
Python 中的第一个示例:函数映射
f = lambda x: 2*x
print map(f, [1,2,3,4])
Python 中的第二个示例:函数式归约
g = lambda x,y: x*y
print reduce(g, [1,2,3,4], 1)
我希望 Haskell 中的并行代码能够有效地利用多核处理器。
注意:这些只是玩具示例,我不打算对这些玩具示例进行加速。它们只是为了说明如何与 Haskell 并行实现运算符 map 和 reduce。
【问题讨论】:
-
尝试阅读wiki.haskell.org/Applications_and_libraries/… 另外,
Control.Parallel.Strategies中的parMap可以解决第一个问题,尽管对于上面这些非常简单的功能,它也会使性能变差。 -
欢迎来到 stackoverflow,请告诉我们您的尝试,并向我们展示您的努力。你已经知道多少haskell。使用多核通常不是初学者的问题。您可能会在Simon Marlowe's excellent book 中找到一些信息。同样在并行之前 - 只需检查简单的单核解决方案是否足够快。
标签: haskell parallel-processing