[Haskell-cafe] Showing >100% CPU usage of parallel code

Jim Burton jim at sdf-eu.org
Sat Feb 21 10:17:54 EST 2009


Hi, I copied the program below from a reddit post of dons'. I have a dual
core laptop with ubuntu hardy and ghc 6.10.1. I can see the difference when
I run the program with +RTS -N2 but CPU always says 100%. I'd like an
example that shows >100 -- is it not showing >100 because of my timeformat
or because of the program? If it's the latter can you point me to an example
that will use more cpu? 

Here's the output:

$ cat /proc/cpuinfo | grep processor | wc -l
2
$ export TIMEFORMAT="%E real,%U user,%S sys, %P cpu"
$ ghc -O2 --make Par.hs -threaded
$ time ./Par
1405006117752879898543142606244511569936384005711076
2.330 real,2.328 user,0.000 sys, 99.92 cpu
$ time ./Par +RTS -N2
1405006117752879898543142606244511569936384005711076
1.504 real,2.316 user,0.016 sys, 100.00 cpu

Here's the program:

----------------
import Control.Parallel

main = a `par` b `par` c `pseq` print (a + b + c)
    where
        a = ack 3 10
        b = fac 42
        c = fib 34

fac 0 = 1
fac n = n * fac (n-1)

ack 0 n = n+1
ack m 0 = ack (m-1) 1
ack m n = ack (m-1) (ack m (n-1))

fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
--------------------

Thanks,

Jim


-- 
View this message in context: http://www.nabble.com/Showing-%3E100--CPU-usage-of-parallel-code-tp22137081p22137081.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.



More information about the Haskell-Cafe mailing list