Многоядерный Haskell в Windows

Я прочитал несколько уроков. в Haskell. Однако мне не удалось заставить скомпилированное приложение работать на многоядерном процессоре (у меня четырехъядерный процессор Intel) в Windows (32-разрядная версия).

Я пробовал несколько вещей:

Но не повезло.

Скомпилированное приложение работает на 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)

person cbrulak    schedule 08.03.2009    source источник
comment
Не могли бы вы добавить код, который вы пытаетесь запустить?   -  person vili    schedule 08.03.2009
comment
Вы используете 32 или 64 бит? Вероятно, это имеет значение.   -  person MarkusQ    schedule 08.03.2009
comment
обновленный вопрос для обоих комментариев   -  person cbrulak    schedule 08.03.2009


Ответы (2)


Если vili верен (я не могу проверить, так как у меня нет ящиков MS), это может быть связано с эта ошибка

person MarkusQ    schedule 08.03.2009

Использование par вместо pseq, кажется, исправляет это.

person vili    schedule 08.03.2009
comment
ты работаешь в винде? Потому что это ничего не сделало для меня. - person cbrulak; 08.03.2009