parallel debugging challenges & opportunities
parallel debugging challenges & opportunities
parallel debugging challenges & opportunities
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>parallel</strong> <strong>debugging</strong><br />
<strong>challenges</strong> & <strong>opportunities</strong><br />
Oak Ridge National Laboratory<br />
23-24 May 2007
<strong>parallel</strong> <strong>debugging</strong>: <strong>challenges</strong> & <strong>opportunities</strong><br />
State of the Art<br />
• Traditional <strong>debugging</strong> methodology<br />
– Follows execution flow<br />
– Breakpoint, inspect, step, repeat (B.I.S.R)<br />
• May not work with advanced languages<br />
• Will not work with petascale architectures<br />
– With 10 6 threads of execution?<br />
• Assumption is that gdb and TotalView will solve<br />
the problem<br />
• When all else fails: printf<br />
© 2007 by Greg Watson; made available under the EPL 1.0<br />
2
<strong>parallel</strong> <strong>debugging</strong>: <strong>challenges</strong> & <strong>opportunities</strong><br />
Debugging Challenges<br />
• Identifying error occurrence<br />
– Predicates/assertions<br />
– Message/data patterns<br />
• Locating error data<br />
– Visualize global program state<br />
– Comparison/search across application<br />
• Rewinding/replaying<br />
– Holy grail?<br />
© 2007 by Greg Watson; made available under the EPL 1.0<br />
3
<strong>parallel</strong> <strong>debugging</strong>: <strong>challenges</strong> & <strong>opportunities</strong><br />
Debugging Challenges (cont...)<br />
• Smarter debugger<br />
– Can the debugger off-load some of the burden from the developer?<br />
• Leverage other tools to assist with <strong>debugging</strong><br />
– e.g. Performance tools to identify hot spots/regions of interest<br />
• Timing issues?<br />
• ... and still be as easy (or easier) than printf<br />
© 2007 by Greg Watson; made available under the EPL 1.0<br />
4
<strong>parallel</strong> <strong>debugging</strong>: <strong>challenges</strong> & <strong>opportunities</strong><br />
Heterogeneous Architectures<br />
• What about heterogeneity issues?<br />
• Needs to support different processor architectures<br />
• Multiple levels of hierarchy<br />
• Different programming models at each level<br />
© 2007 by Greg Watson; made available under the EPL 1.0<br />
5
<strong>parallel</strong> <strong>debugging</strong>: <strong>challenges</strong> & <strong>opportunities</strong><br />
How to get out of the rut?<br />
• Universal <strong>parallel</strong> <strong>debugging</strong> platform for research<br />
development<br />
• Rich user interface<br />
• Community willing to undertake research/<br />
development<br />
– Must be open source<br />
– Too hard to develop from scratch<br />
• Some level of confidence<br />
– Technology can be advanced<br />
– Will aid developers, not hinder<br />
– Longevity of platform, solution<br />
© 2007 by Greg Watson; made available under the EPL 1.0<br />
6
<strong>parallel</strong> <strong>debugging</strong>: <strong>challenges</strong> & <strong>opportunities</strong><br />
PTP Debug Platform: Now<br />
• Traditional debug views<br />
• Groups of processes<br />
– debug commands (e.g. step, resume, etc.)<br />
– breakpoints<br />
– execution location<br />
• Client/server debug architecture<br />
– Debug application launch<br />
– Command broadcast<br />
– Event Aggregation<br />
© 2007 by Greg Watson; made available under the EPL 1.0<br />
7
• Debug server is an MPI<br />
program<br />
• Debug engines are started on<br />
each node, one per process<br />
• Debug engines act as<br />
message forwarders/<br />
aggregators<br />
• High level debug API allows<br />
replacement of debug server<br />
• GDB currently used for lowlevel<br />
debug operations<br />
<strong>parallel</strong> <strong>debugging</strong>: <strong>challenges</strong> & <strong>opportunities</strong><br />
PTP Debug Architecture<br />
Eclipse<br />
© 2007 by Greg Watson; made available under the EPL 1.0<br />
20 8
<strong>parallel</strong> <strong>debugging</strong>: <strong>challenges</strong> & <strong>opportunities</strong><br />
PTP Debug Platform: Future<br />
• Advanced debug views<br />
– Visualize data from multiple processes<br />
– Support for multiprocess/mutithreaded applications<br />
– Better scalability in views<br />
• Generic server architecture<br />
– Launch other tools, not just debuggers<br />
– Generalized command broadcast/event aggregation framework<br />
– Arbitrary message format for tool communication<br />
• Support for proprietary backend debug engines<br />
© 2007 by Greg Watson; made available under the EPL 1.0<br />
9