ThreadScope: Request for features for the performance tuning of parallel and concurrent Haskell programs

Donnie Jones, Simon Marlow and I have been working on infrastructure for logging run-time events and a graphical viewer program called ThreadScope. Hopefully these features will make it into the next release of GHC. We hope the event-log viewer ThreadScope will be useful for the performance tuning of parallel and concurrent Haskell programs. You can see a few screen shots at the program's website http://raintown.org/threadscope Before making the release I thought it would be an idea to ask people what other features people would find useful or performance tuning. So if you have any suggestions please do let us know! Cheers, Satnam Singh ________________________________ Satnam Singh Microsoft 7 JJ Thomson Avenue Cambridge CB3 0FB United Kingdom Email: satnams@microsoft.commailto:satnams@microsoft.com UK tel: +44 1223 479905 Fax: +44 1223 479 999 UK mobile: +44 7979 648412 USA cell: 206 330 1580 USA tel: 206 219 9024 URL: http://research.microsoft.com/~satnams Live Messenger: satnam@raintown.orgmailto:satnam@raintown.org

Hi Satnam, On 12/03/2009, at 12:24 AM, Satnam Singh wrote:
Before making the release I thought it would be an idea to ask people what other features people would find useful or performance tuning. So if you have any suggestions please do let us know!
Is it available in a branch somewhere to try out? Ben.

Ben Lippmeier wrote:
On 12/03/2009, at 12:24 AM, Satnam Singh wrote:
Before making the release I thought it would be an idea to ask people what other features people would find useful or performance tuning. So if you have any suggestions please do let us know!
Is it available in a branch somewhere to try out?
There are three parts to it: - some patches to GHC to generate the log files. The patches are not yet in, but I hope to get them in in the next couple of weeks. - a Haskell library for parsing the log files. This will be up on Hackage soon. You can use this to write your own analysis tools, visualisers, or whatever. - The ThreadScope viewer itself, which will also be up on Hackage as soon as its ready. So we fully intend to get this out there ASAP, although until GHC 6.12 is released you will need to use a GHC snapshot to generate the log files. Cheers, Simon

marlowsd:
Ben Lippmeier wrote:
On 12/03/2009, at 12:24 AM, Satnam Singh wrote:
Before making the release I thought it would be an idea to ask people what other features people would find useful or performance tuning. So if you have any suggestions please do let us know!
Is it available in a branch somewhere to try out?
There are three parts to it:
- some patches to GHC to generate the log files. The patches are not yet in, but I hope to get them in in the next couple of weeks.
Just as a meta-point, it makes a *lot* of sense for the runtime to support proper logging -- it's practically a microkernel after all, so logging makes as much sense for GHC's rts as it does for regular kernels. Now we just need a /proc for the rts, so I can peek at GC stats live.
- a Haskell library for parsing the log files. This will be up on Hackage soon. You can use this to write your own analysis tools, visualisers, or whatever.
- The ThreadScope viewer itself, which will also be up on Hackage as soon as its ready.
So we fully intend to get this out there ASAP, although until GHC 6.12 is released you will need to use a GHC snapshot to generate the log files.
Sweet. This should have many many applications for work projects ... "attach a viewer to a remote Haskell server to see what's it's up to"... "heartbeat monitoring of the rts" ... -- Don

Don Stewart wrote:
marlowsd:
Ben Lippmeier wrote:
On 12/03/2009, at 12:24 AM, Satnam Singh wrote:
Before making the release I thought it would be an idea to ask people what other features people would find useful or performance tuning. So if you have any suggestions please do let us know!
Is it available in a branch somewhere to try out? There are three parts to it:
- some patches to GHC to generate the log files. The patches are not yet in, but I hope to get them in in the next couple of weeks.
Just as a meta-point, it makes a *lot* of sense for the runtime to support proper logging -- it's practically a microkernel after all, so logging makes as much sense for GHC's rts as it does for regular kernels.
Now we just need a /proc for the rts, so I can peek at GC stats live.
Seeing this thread and discussion direction I cannot resist to temptation to ask: is anybody going to write rts DTrace[1] provider? Thanks, Karel [1]: http://en.wikipedia.org/wiki/DTrace

karel.gardas:
Don Stewart wrote:
marlowsd:
Ben Lippmeier wrote:
On 12/03/2009, at 12:24 AM, Satnam Singh wrote:
Before making the release I thought it would be an idea to ask people what other features people would find useful or performance tuning. So if you have any suggestions please do let us know!
Is it available in a branch somewhere to try out? There are three parts to it:
- some patches to GHC to generate the log files. The patches are not yet in, but I hope to get them in in the next couple of weeks.
Just as a meta-point, it makes a *lot* of sense for the runtime to support proper logging -- it's practically a microkernel after all, so logging makes as much sense for GHC's rts as it does for regular kernels.
Now we just need a /proc for the rts, so I can peek at GC stats live.
Seeing this thread and discussion direction I cannot resist to temptation to ask: is anybody going to write rts DTrace[1] provider?
I think this is clear next step in the investigations. -- Don
participants (5)
-
Ben Lippmeier
-
Don Stewart
-
Karel Gardas
-
Satnam Singh
-
Simon Marlow