ThreadScope Tour/Run

From HaskellWiki
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, may be hellofib.exe.eventlog