Contribution Details |
| |
| Name: |
 |
Tutorial 5: Relative, Reverse & CUDA Debugging for Computationally Intensive Application Development |
|
| |
| Time: |
 |
Sunday, June 17, 2012 9:00 AM - 1:00 PM |
|
| |
| Room: |
|
Room 124 Hamburg University, East Wing |
|
| |
| Speakers: |
|
Chris Gottbrath, Rogue Wave Software |
|
|
|
Nikolay Piskun, Rogue Wave Software |
|
|
|
Sandra Wienke, RWTH Aachen |
|
| |
| Abstract: |
|
A significant challenge in developing, maintaining and porting numerical simulations is avoiding subtle errors that undermine the validity of the results without causing an obvious failure. This tutorial will share experiences, best practices and debugging techniques for identifying and resolving such defects in parallel applications. The first technique is the comparison of trace data: traces, collected either inline in the code with print statements or dynamically with debuggers, are especially helpful in characterizing a problem and narrowing down roughly where it occurs. The second technique is side-by-side examination with a source code debugger: we will introduce several simple ways to compare datasets side by side. A third technique, particularly helpful in finding the root cause of a numerical deviation, is reverse debugging, a powerful alternative to moving breakpoints or print statements and restarting an application. Finally, we’ll examine a scenario where all of these issues are likely to arise – porting key pieces of an existing numerical code to CUDA. We will look at ways to validate and troubleshoot the CUDA kernels to ensure numerical accuracy. |
|
 |
 |
 |
 |