Personal tools

ThreadScope Tour/SparkOverview

From HaskellWiki

< ThreadScope Tour(Difference between revisions)
Jump to: navigation, search
(Spark viewer features: tidy up)
m (Things to look for)
Line 30: Line 30:
 
# Too many sparks get GC'd (orange)
 
# Too many sparks get GC'd (orange)
 
# Sparks too small (overheads too high)
 
# Sparks too small (overheads too high)
# Sparks too big (load balancing problems [TODO: link to Sudoku]
+
# Sparks too big (load balancing problems '''TODO''' : link to Sudoku
   
 
In the following sections we will walk through some examples of attempts to diagnose these problems.
 
In the following sections we will walk through some examples of attempts to diagnose these problems.

Revision as of 16:05, 7 December 2011

1 ThreadScope and sparks

ThreadScope 0.2.1 and higher come with spark event visualisations that help you to understand not just what behaviours your parallel program is exhibiting (eg. not using all cores) but why.

It helps to know a bit about sparks:

spark lifecycle

2 Spark viewer features

spark creation/conversion

spark pool

spark size histogram

3 Things to look for

The combination of features can be used to look for some common problems such as

  1. Too few sparks (not enough parallelism)
    • spark pool hits empty
    • low spark creation rate
  1. Too many sparks
    • overflow (red) is wasted work
    • can cause catastrophic loss of parallelism
  1. Too many duds or fizzled sparks (grey)
  2. Too many sparks get GC'd (orange)
  3. Sparks too small (overheads too high)
  4. Sparks too big (load balancing problems TODO : link to Sudoku

In the following sections we will walk through some examples of attempts to diagnose these problems.