[Haskell-cafe] Parallel compilation and execution?

David Virebayre dav.vire+haskell at gmail.com
Thu May 26 14:56:40 CEST 2011


2011/5/26 michael rice <nowgate at yahoo.com>

> Thank, Daniel
>
> Multiple threads are in evidence in my system monitor, but I wonder why I'm
> getting two different answers, one twice the other. The first is the
> parallel solution and the second is the non.
>

Why do you add n1+n2+1 in the parallel program, but only n1+n2 in the
non-parallel one ?


>
> Michael
>
> ===========
>
> {-
> import Control.Parallel
>
> nfib :: Int -> Int
> nfib n | n <= 1 = 1
>        | otherwise = par n1 (pseq n2 (n1 + n2 + 1))
>                      where n1 = nfib (n-1)
>                            n2 = nfib (n-2)
> -}
>
> nfib :: Int -> Int
> nfib n | n <= 1 = 1
>        | otherwise = nfib (n-1) + nfib (n-2)
>
> main = do putStrLn $ show $ nfib 39
>
> =============
>
> [michael at hostname ~]$ ghc --make -threaded nfib.hs
> [1 of 1] Compiling Main             ( nfib.hs, nfib.o )
> Linking nfib ...
> [michael at hostname ~]$ ./nfib +RTS -N3
> 204668309
> [michael at hostname ~]$ ghc --make nfib.hs
> [1 of 1] Compiling Main             ( nfib.hs, nfib.o )
> Linking nfib ...
> [michael at hostname ~]$ ./nfib
> 102334155
> [michael at hostname ~]$
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110526/cf076508/attachment.htm>


More information about the Haskell-Cafe mailing list