ThreadScope Tour/Run

From HaskellWiki
< ThreadScope Tour
Revision as of 15:55, 7 December 2011 by EricKow (talk | contribs) (→‎Steps: remove past-o)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Objective

Run ThreadScope on a sample program and get a trace.

ThreadScope hellofib

Steps

  1. Copy the following parallel code to hellofib.hs

     import Control.Parallel.Strategies
     import System.Environment
    
     fib 0 = 1
     fib 1 = 1
     fib n = runEval $ do
       x <- rpar (fib (n-1))
       y <- rseq (fib (n-2))
       return (x + y + 1)
    
     main = do
       args <- getArgs
       n <- case args of
             []    -> return 20 
             [x]   -> return (read x)
             _     -> fail ("Usage: hellofib [n]")
       print (fib n)
  2. Build hellofib.hs

     ghc -O2 -rtsopts -eventlog -threaded hellofib
  3. Run hellofib

     ./hellofib +RTS -N2
  4. View its trace

    threadscope hellofib.eventlog # on Windows, hellofib.exe.eventlog