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.