4
任务是通过使用parMap或parListChunk或更好的方式来加速求和。并行代码实际上运行速度较慢。哈斯克尔并行性能
编辑:Facepalm ..我忽略了如何正确执行应用程序。
不要忘记
./myHaskellApp paramaters +RTS -N4 -sstderr
其中N 是核心数量增加内核。
任务是通过使用parMap或parListChunk或更好的方式来加速求和。并行代码实际上运行速度较慢。哈斯克尔并行性能
编辑:Facepalm ..我忽略了如何正确执行应用程序。
不要忘记
./myHaskellApp paramaters +RTS -N4 -sstderr
其中N 是核心数量增加内核。
务必确保您实际上正在运行-threaded
,并使用-O2
进行优化,并且您使用的核心数量合理(例如-N4
)。此外,请检查您的garbage collector statistics.
这些对于真正的大列表来说是否也比较慢? – gspr 2012-03-06 07:55:11
取决于'euler'的价格多少,'5'可能太小而不够块。如果你尝试更像2000的东西呢? (尽管考虑到15000的小数,“euler”可能相当昂贵,在这种情况下这将不起作用) – luqui 2012-03-06 08:15:17
分析并行程序的最佳工具是http://www.haskell.org/haskellwiki/ThreadScope – 2012-03-06 13:48:22