X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fusers_guide%2Fparallel.xml;h=d971980b958d1ac3b9da7bd369888ffd68c4c0c0;hb=23c11847ac06735217d778e4e78d527ca0d55649;hp=7792ea651abde3e7ee45d4dc7606d90e581bf66f;hpb=fcf6ab7b3dfe389e971059bbf21dfa8179b20f5e;p=ghc-hetmet.git diff --git a/docs/users_guide/parallel.xml b/docs/users_guide/parallel.xml index 7792ea6..d971980 100644 --- a/docs/users_guide/parallel.xml +++ b/docs/users_guide/parallel.xml @@ -83,7 +83,7 @@ All these features are described in the papers mentioned earlier. By default GHC runs your program on one processor; if you want it to run in parallel you must link your program with the , and run it with the RTS - option; see ). + option; see ). The runtime will schedule the running Haskell threads among the available OS threads, running as many in parallel as you specified with the @@ -136,7 +136,7 @@ import Control.Parallel nfib :: Int -> Int nfib n | n <= 1 = 1 - | otherwise = par n1 (seq n2 (n1 + n2)) + | otherwise = par n1 (seq n2 (n1 + n2 + 1)) where n1 = nfib (n-1) n2 = nfib (n-2) @@ -149,8 +149,8 @@ nfib n | n <= 1 = 1 (leaving the parent to evaluate the other branch). Also, we must use seq to ensure that the parent will evaluate n2 before n1 - in the expression (n1 + n2). It is not sufficient - to reorder the expression as (n2 + n1), because + in the expression (n1 + n2 + 1). It is not sufficient + to reorder the expression as (n2 + n1 + 1), because the compiler may not generate code to evaluate the addends from left to right.