Domanda

Ho letto un certo numero di tutorials su Haskell. Tuttavia, non sono stato in grado di far funzionare l'applicazione compilata su un multicore (ho un Intel Quad Core) su Windows (32 bit) .

Ho provato diverse cose:

Ma niente fortuna.

L'applicazione compilata viene eseguita al 100% su un solo core.

Qualche idea?

Codice:

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)
È stato utile?

Soluzione

Se vili è corretto (non posso eseguire il test poiché non possiedo alcuna casella MS), potrebbe essere correlato a questo errore

Altri suggerimenti

L'uso di par invece di pseq sembra risolverlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top