Debugging, Profiling and Optimising

Description: Following an introduction to process and memory architecture basics, this course demonstrates use of debugging and performance profiling tools with serial and parallel codes. The tools covered are the GDB and Totalview debuggers, and the Cray Performance Analysis Toolkit, Scalasca and GProf for performance profiling. The course is structured to give attendees hands-on experience of the tools through exercises in addition to lectures. An important part of using the profiling tools effectively is interpreting the data and understanding where there are (and are not) possibilities for optimisation. Some basic code and compiler optimisation techniques are demonstrated, which enable programmers to take action on the results of profiling.

Aimed at:Scientific software developers (in serial or parallel) who would like to learn about the basics of process and memory architecture, debugging, profiling and optimisation.

Prerequisites: Experience in scientific programming in Fortran or C in a UNIX environment. For instance, one should be able to: connect to a machine remotely (e.g. using ssh), use basic UNIX commands, edit a source file, and understand the elementary steps in compiling object files and creating executables.

Duration: 2 days (roughly 50% lectures and 50% practicals).

After Course Attendees Will: be able to use tools to debug and profile parallel or serial code effectively and identify and implement basic optimisations.

Registration: To register for HECToR courses go to the booking form.