Lorsque j'exécute cet extrait Haskell, seul 1 processeur est chargé. Les deux f
et g
sont non-sens, mais ne devrait-il pas charger deux processeurs lorsqu'ils sont disponibles? Compilé en tant que ghc -O2 snippet.hs
.Calcul parallèle dans Haskell
f x = 1 + (f $! x)
g x = 5 + (g $! x)
z = a `par` b `seq` a+b
where
a = f 3
b = g 5
main = do
print z
Essayé, mais je vois encore que la charge à 100%, pas 200% de charge (ont 4 cœurs dans mon CPU). – Cartesius00
Attendez, j'ai oublié que vous devez également passer l'exécutable le nombre de cœurs, comme ceci: './snippet + RTS -N4' pour quatre cœurs. –
C'est tout! Merci :) – Cartesius00