Hi,<div>I tried the first example from &quot;A tutorial on Parallel and Concurrent programming in Haskell&quot; but I cant seem to get sparks to get converted to OS threads.</div><div><div><br></div><div>Below is the program I am using.</div>
<div>I did ghc --make -threaded program.hs</div><div>then </div><div>./program +RTS -N2</div><div>I don&#39;t see any speed gain compared to N1.</div><div>Am I missing something?</div><div><br></div><div><br></div><div>import System.Time</div>
<div>import Control.Parallel</div><div><br></div><div>fib :: Int -&gt; Int</div><div>fib 0 = 0</div><div>fib 1 = 1</div><div>fib n = fib (n-1) + fib (n-2)</div><div><br></div><div><br></div><div>mkList :: Int -&gt; [Int]</div>
<div>mkList n = [1..n-1]</div><div><br></div><div>relPrime :: Int -&gt; Int -&gt; Bool</div><div>relPrime x y = gcd x y == 1</div><div><br></div><div>euler :: Int -&gt; Int</div><div>euler n = length (filter (relPrime n) (mkList n))</div>
<div><br></div><div>sumEuler :: Int -&gt; Int</div><div>sumEuler = sum . (map euler) . mkList</div><div><br></div><div>sumFibEuler :: Int -&gt; Int -&gt; Int</div><div>sumFibEuler a b = fib a + sumEuler b</div><div><br></div>
<div><br></div><div>parSumFibEuler :: Int -&gt; Int -&gt; Int</div><div>parSumFibEuler a b</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>= f `par`  (e `pseq` (e + f))</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>where</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>f = fib a</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>e = sumEuler b</div><div><br></div><div>secDiff :: ClockTime -&gt; ClockTime -&gt; Float</div>
<div>secDiff (TOD secs1 psecs1) (TOD secs2 psecs2)</div><div> = fromInteger (psecs2 - psecs1) / 1e12 + fromInteger (secs2 - secs1)</div><div><br></div><div>r1 :: Int</div><div>r1 = sumFibEuler 38 5300</div><div><br></div>
<div>main :: IO ()</div><div>main = do</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>t0 &lt;- getClockTime</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>pseq r1 (return())</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>t1 &lt;- getClockTime</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>putStrLn (&quot;Sum: &quot; ++ show r1)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>putStrLn (&quot;time: &quot; ++ show (secDiff t0 t1) ++ &quot; seconds&quot;)</div>
<div><br></div></div>