PACS Alliance announced WebCT course, Debugging Parallel & Serial Programs

“Just when I thought that we had developed the best course possible, we released another one that was even better than the one before,” Leslie Southern, the PACS Training Group Lead. “I am extremely proud of the legacy that this exceptional group is leaving the community.” To design the course, developers looked to their years of experience in writing and debugging serial and parallel code for high performance computing. Their frustrations with bugs and success with debuggers led to the topics for the course. They recognized that if programmers could easily determine how the use of debuggers could greatly improve their programs, they would be less reluctant to use them. The course is the final installment in a series of asynchronous courses developed by the PACS training group since 2000. Their other on-line courses include: Introduction to MPI, Intermediate MPI, Introduction to OpenMP, Multilevel Parallel Programming, Performance Tuning for Clusters and Parallel Numerical Libraries. Over 14,000 students have logged onto the courses – with hundreds more taking the courses each month. Students surveyed have commented on the ease of taking the high-quality courses. The on-line tutorial, located at http://foxtrot.ncsa.uiuc.edu:8900/public/DEBUG/ includes the following topics: Serial Bugs • Checking variable values with debuggers • Array Index Errors • I/O Bugs • Dummy & Actual Arguments Mismatch • Infinite Loop • Pointer Misuse • Memory Allocation Problems • Integer Division Bugs Parallel Bugs • Analyzing local values of processors • Accounting for all parallel processes • Updating shared memory location • Need Serial or Ordered Calculation • Parallel I/O Bugs • Finding logical errors • Incorrect Local Memory distribution • Hung processes in message passing • Dynamic Memory Allocation Mishaps • Correct Use of Collective Routines • Incorrect Data scoping • Zero-based Indexing “Our course is unique because it explains in detail why a certain debugging command / strategy is used. It is not a rote, step-by-step instruction manual, said Dr. David Ennis, the Lead for the course. “We thought it would be much more practical to show students how to fix bugs, rather than give an overview of the specifications of various debuggers.” The Performance Tuning on Clusters on-line tutorial was developed by PACS Alliance partners NCSA, Boston University, University of Kentucky, and OSC (Ohio Supercomputer Center). OSC’s David Ennis led the course development team. This course is one of several offered online via NCSA's Web-based course server, WebCT-HPC. These courses can be accessed at http://webct.ncsa.uiuc.edu:8900/ and are available to all at no charge.