PACS Announces Final WebCT Course
released 12.10.04
Contact
Leslie Southern
PACS Training Lead
leslie@osc.edu
614.292.9367
COLUMBUS, OH
The PACS Alliance (Partners for Advanced Computational Services) Training Group has announced the release of its final WebCT course, "Debugging Parallel and 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 online courses include: Introduction to MPI, Intermediate MPI, Introduction to OpenMP, Multilevel Parallel Programming, Performance Tuning for Clusters and Parallel Numerical Libraries.
More than 14,000 students have logged onto the courses with hundreds taking the courses each month. Students surveyed have commented on the ease of taking the high-quality courses.
The online debugging 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 David Ennis of the Ohio Supercomputer Center, who led development of 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 online tutorial was developed by PACS Alliance partners NCSA, Boston University, University of Kentucky, and OSC.
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.