4

任务是通过使用parMap或parListChunk或更好的方式来加速求和。并行代码实际上运行速度较慢。哈斯克尔并行性能

编辑:Facepalm ..我忽略了如何正确执行应用程序。

不要忘记

./myHaskellApp paramaters +RTS -N4 -sstderr 

其中N 是核心数量增加内核。

+1

这些对于真正的大列表来说是否也比较慢? – gspr 2012-03-06 07:55:11

+0

取决于'euler'的价格多少,'5'可能太小而不够块。如果你尝试更像2000的东西呢? (尽管考虑到15000的小数,“euler”可能相当昂贵,在这种情况下这将不起作用) – luqui 2012-03-06 08:15:17

+0

分析并行程序的最佳工具是http://www.haskell.org/haskellwiki/ThreadScope – 2012-03-06 13:48:22

回答

5

务必确保您实际上正在运行-threaded,并使用-O2进行优化,并且您使用的核心数量合理(例如-N4)。此外,请检查您的garbage collector statistics.