21.08.2013 Views

parallel debugging challenges & opportunities

parallel debugging challenges & opportunities

parallel debugging challenges & opportunities

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!