The HECToR Service is now closed and has been superceded by ARCHER.

Debugging, Profiling and Optimising

Description: This course covers each of the major stages in writing efficient parallel scientific software, from generating correct code through understanding performance characteristics to optimising the time to solution.

The first day focuses on debugging code. It covers various methodologies for doing so, including the use of tools gdb, Valgrind and Totalview. The second and third days concentrate on performance profiling and optimisation. After an introduction to modern processor architecture (focusing on modern x86 multicore processors) day two stresses performance evaluation, introducing the Cray Performance Analysis Tools (CrayPAT), Scalasca, TAU and Gprof for profiling and covering interpreting the data that these tools generate so as to discover possibilities for optimisation. Day 3 then uses this data to introduce serial optimisation techniques, from use of the compiler and libraries to more complex code reorganisations.

Throughout the course attendees will have extensive hands-on experience of the tools through exercises in addition to lectures.

It is possible to attend either day 1, days 2 and 3 or all three days. Please select the appropriate option on the registration form. As day 3 depends strongly on the material presented on day 2 we can not accept registrations for attending day 3 only.

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:1, 2 or 3 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.