2009-03-08 34 views
5

Tôi đã đọc một số tutorialson Haskell. Tuy nhiên, tôi đã không thể có được các ứng dụng biên dịch để chạy trên một đa lõi (tôi có một Intel Quad Core) trên cửa sổ (32 bit).Multi-Core Haskell trên Windows

Tôi đã thử một số điều:

Nhưng không may mắn.

Ứng dụng đã biên dịch chỉ chạy 100% trên một lõi.

Bất kỳ ý tưởng nào?

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) 
+0

Bạn có thể thêm mã bạn đang cố gắng để chạy? – vili

+0

Bạn đang chạy 32 hoặc 64 bit? Nó có thể là vấn đề. – MarkusQ

+0

câu hỏi được cập nhật cho cả hai commmets – cbrulak

Trả lời

5

Nếu Vili là đúng (tôi không thể kiểm tra như tôi không sở hữu bất kỳ hộp MS), nó có thể liên quan đến this bug

6

Sử dụng mệnh thay vì pseq dường như để sửa chữa nó.

+0

bạn có đang chạy các cửa sổ không? Bởi vì điều đó không làm gì cho tôi – cbrulak