Personal tools

HaskellImplementorsWorkshop/2011/Coutts

From HaskellWiki

< HaskellImplementorsWorkshop | 2011(Difference between revisions)
Jump to: navigation, search
m (add link to slides and other resources)
(Added Category:Community)
 
(2 intermediate revisions by 2 users not shown)
Line 15: Line 15:
 
'''Resources'''
 
'''Resources'''
   
* [http://www.well-typed.com/blog/aux/files/threadscope-spark-profiling.pdf Slides from the talk]
+
* [http://www.haskell.org/wikiupload/2/2f/HIW2011-Talk-Coutts.pdf Slides from the talk]
  +
* [http://www.youtube.com/watch?v=kFrAqWLHUDo Video of the talk]
 
* [[ThreadScope|ThreadScope home page]]
 
* [[ThreadScope|ThreadScope home page]]
 
* [http://hackage.haskell.org/package/threadscope Hackage page for ThreadScope]
 
* [http://hackage.haskell.org/package/threadscope Hackage page for ThreadScope]
  +
  +
  +
[[Category:Community]]

Latest revision as of 13:28, 17 December 2012

[edit] Spark Visualization in ThreadScope

Duncan Coutts*, Mikolaj Konarski, Andres Löh

ThreadScope is a powerful debugging tool for parallel Haskell programs. It reads GHC-generated event logs and displays them in a user-friendly form, showing the phases of (in)activity per CPU as well as garbage collections.

However, a significant amount of experience and knowledge about the GHC internals is required to successfully read the output of ThreadScope, and some information is simply lacking.

We have extended GHC to generate events that sample the size of the spark pool and deliver stats about spark creation and conversion. In ThreadScope, we can display these statistics visually. This helps significantly in debugging some common problems such as generating too many sparks at once (causing overflow), or too few sparks, or sparks of the wrong size.

The presentation will include a demo, inspired by a program we are working on for the Parallel GHC Project.

We are also working on additional visualizations (such as spark lifetime). We are interested in community feedback about other interesting visualizations to implement in ThreadScope, so there is plenty of potential for discussion.

Resources