2009-03-08 15 views
5

Ich habe eine Reihe von tutorialson Haskell gelesen. Allerdings konnte ich die kompilierte Anwendung nicht auf einem Multicore (ich habe einen Intel Quad Core) unter Windows (32 Bit) ausführen.Multi-Core Haskell unter Windows

Ich habe eine Reihe von Dingen versucht:

Aber kein Glück.

Die kompilierte Anwendung läuft zu 100% nur auf einem Kern.

Irgendwelche Ideen?

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

in Verbindung stehen könnten Sie den Code hinzufügen, die Sie ausführen sind versuchen? – vili

+0

Laufen 32 oder 64 Bit? Es ist wahrscheinlich wichtig. – MarkusQ

+0

aktualisierte Frage für beide – cbrulak

Antwort

5

Wenn vili korrekt ist (ich kann nicht testen, da ich keine MS-Boxen nicht besitzen), könnte es zu this bug

6

Mit par statt pseq scheint es zu beheben.

+0

Sie laufen Windows? Weil das nichts für mich getan hat – cbrulak