Pergunta

Estive lendo uma série de tutoriais em Haskell. No entanto, eu não tenho sido capaz de obter o aplicativo compilado para rodar em um multicore (Eu tenho um Core Intel Quad) em Windows (32 bits) .

Eu tentei uma série de coisas:

Mas sem sorte.

O aplicativo compilado é executado 100% em apenas um núcleo.

Todas as idéias?

Código:

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)
Foi útil?

Solução

Se vili está correta (eu não posso teste como eu não possuo quaisquer caixas de MS), que pode estar relacionado com este bug

Outras dicas

Usando par em vez de pseq parece corrigi-lo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top