Windows 上的多核 Haskell
我读过一些教程 在 Haskell 上。 但是,我无法让编译后的应用程序在 Windows(32 位) 上的多核(我有一个 Intel 四核)上运行。
我尝试了很多方法:
- ghc -O2 --make A.hs -threaded
- < a href="http://cgi.cse.unsw.edu.au/~dons/blog/2007/11/29" rel="nofollow noreferrer">./real-par +RTS -N2
- < a href="http://cgi.cse.unsw.edu.au/~dons/blog/2007/11/29" rel="nofollow noreferrer">./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)
I've been reading a number of tutorials on Haskell. However, I have not been able to get the compiled application to run on a multicore (I have an Intel Quad Core) on windows (32 bit).
I have tried a number of things:
But no luck.
The compiled application runs 100% on one core only.
Any ideas?
Code:
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)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 par 而不是 pseq 似乎可以解决此问题。
Using par instead of pseq seems to fix it.
如果 vili 是正确的(我无法测试,因为我没有任何 MS 盒子),它可能与 这个错误
If vili is correct (I can't test as I don't own any MS boxes), it might be related to this bug