10
|
Rafael S. Calsaverini · 技术社区 · 15 年前 |
![]() |
1
16
作为堂 explained ,问题是你制造了太多火花。下面是如何重写它以获得良好的加速。
演示:
|
![]() |
2
13
您创建的火花数量是指数级的(想想您在这里创建了多少递归调用)。要真正获得良好的并行性,您需要创建 较少的 在这种情况下,并行工作,因为您的硬件无法处理那么多线程(因此GHC不会制造线程)。 解决方案是使用切断策略,如本演讲中所述: http://donsbot.wordpress.com/2009/09/05/defun-2009-multicore-programming-in-haskell-now/
|
![]() |
3
3
因为没有人给出一个明确的答案
|
![]() |
4
1
关于(1):
Re(2):这是一个非常琐碎的计算,被转移到其他线程;cpu自己计算的速度可能也一样快。我打赌线程的开销对这个简单计算的影响几乎和帮助一样大。 |