Loading Events

« All Events

High Performance Programming

November 13 @ 09:00 November 15 @ 13:00 CET


Welcome to our online workshop on High Performance Programming, focusing on single core performance optimisation. Over the course of three half-day sessions, we will delve into the intricacies of algorithms, algorithms and complexity, cache efficiency, SIMD vectorisation, and compiler optimisations. We will keep a practical focus on useful techniques and mindsets.

Who is this workshop for?

Our workshop is designed for those familiar with the C language, but will also be relevant to Fortran programmers, with a hardware focus on modern 64-bit x86 systems. We will assume a Linux environment, as it is the most common in high performance computing. Whether you’re a seasoned programmer looking to optimise your code, or a newcomer to the field, this workshop offers valuable insights into the world of high performance programming.

This workshop is an interactive online event, featuring live coding, demos, and practical exercises. We aim to equip you with the tools and knowledge to write efficient, high-performance code.

Join us for this exciting journey into the world of high performance programming!

Prerequisites

  • Some experience with programming in C.
  • Some familiarity with the use of Linux and its shell to build and run programs.
  • Some knowledge of computer hardware might be useful but is not necessary. A ton of curiosity will be a good substitute!

Key takeaways

After attending the workshop, you will:

  • Be familiar with the most common complexity classes and the relationship between program structure and complexity.
  • Be able to use some widely useful approaches to algorithmic efficiency like sharing, sparseness, and memoisation.
  • Know something of how the compiler will translate your code, and what optimisations you can rely on the compiler to do
    (so that you don’t need to make them).
  • Be aware of how you can check the output of the compiler if you are still unsure.
  • Know the basic structure of a modern out-of-order issue processor core.
  • Know how a modern memory hierarchy works and how to write code that utilizes caches efficiently.
  • Know something about SIMD vectorisation and how it can be exploited.
  • Know how to time your program and avoid the related pitfalls.
  • Be aware of how you can use performance counters to further analyse the execution of your program.

Agenda

Agenda will be updated soon.

Registration

You can register by using the following link https://events.prace-ri.eu/event/1545/registrations/1123/

Disclaimer

This training is intended for users established in the European Union or a country associated with Horizon 2020. You can read more about the countries associated with Horizon2020 here https://ec.europa.eu/info/research-and-innovation/statistics/framework-programme-facts-and-figures/horizon-2020-country-profiles_e