我一直在阅读有关 Haskell 的一些教程 .但是,我无法让已编译的应用程序在Windows(32位)上运行多核(我有一个Intel四核).
我尝试过很多东西:
ghc -O2 - 制作A.hs -threaded
./real-par + RTS -N2
./real-par + RTS -N4
但没有运气.
已编译的应用程序仅在一个核心上运行100%.
有任何想法吗?
码:
import Control.Parallel import Control.Monad import Text.Printf fib :: Int -> Int fib 0 = 0 fib 1 = 1 fib n = l `pseq` r `pseq` l+r where l = fib (n-1) r = fib (n-2) main = forM_ [0..350] $ \i -> printf "n=%d => %d\n" i (fib i)
vili.. 6
使用par而不是pseq似乎可以解决它.
使用par而不是pseq似乎可以解决它.
如果vili是正确的(我无法测试,因为我没有任何MS盒子),它可能与此错误有关