In High Performance Computing, performance is a major consideration. Hence it is important to understand the hardware and software properties that influence the performance of your applications. Although this is relevant for software developers, it is also useful for application users who want to understand the performance characteristics of the software they use.

Learning outcomes

When you complete this training you will be able to

  • understand the scaling laws for performance;

  • understand the memory architecture of modern computers;

  • understand vectorization;

  • understand performance pitfalls in shared memory programming;

  • to profile an application using gprof and Arm MAP;

  • use feedback-guided optimization.


Total duration: 7 hours, split over two sessions.​

Training materials

Slides are available in the GitHub repository, as well as example code and hands-on material.


Target audience

This training is for you if you want to develop code that efficiently uses HPC compute infrastructure, or want to tune the parameters of your application for efficiency.



You will need experience programming in some programming language.

If you plan to do code optimization in a Linux or HPC environment you should be familiar with these as well.



Geert Jan Bex (