Debugging, Profiling, and Optimizing

Training Course Description

These courses cover each of the major stages in writing efficient scientific software, from generating correct code through understanding performance characteristics to optimizing the time to solution. A course may involve teaching any combination of these three stages.

For each stage we demonstrate the important tools and techniques used in practice, and provide experience in using the tools through exercises. We can cover debugging tools such as GDB, Valgrind, Totalview and DDT and profiling tools such as GProf, Intel VTune, CrayPAT and Scalasca. In addition to teaching use of the tools we can also provide an introduction to modern processor architecture, which can give attendees a solid foundation for understanding serial optimization techniques.

Aimed at:

Scientific software developers (in serial or parallel) who would like to learn about the basics of processor and memory architecture, debugging, profiling and optimization.


Attendees should be able to program in either Fortran or C and be familiar with working in a UNIX environment (i.e., you should be able to connect to a machine remotely, use basic UNIX commands, edit a source file and understand the elementary steps in compiling object files and creating executables).


1 to 3 days.

After the course attendees will:

Be able to use tools to debug and profile parallel or serial code effectively and identify and implement basic optimizations.

Please email us if you would like to attend this course.