[ONLINE] High Performance Programming @ENCCS

Europe/Stockholm
Online

Online

Description

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

Who is this workshop for

Our workshop is designed for those familiar with C and to some extent Fortran programming languages, 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 optimize 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 of 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 necessar. 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 memoization.
  • Know something of how the compiler will translate your code, and what optimizations you can rely on the compiler to do
    (so that you don not 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 our 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 vectorization 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 analyze the execution of your program.

Agenda

For updated agenda please visit https://enccs.se/events/2023-11-high-performance-programming/

Contact

For any questions contact us at training@enccs.se

Follow our Events Schedule

Follow us on Twitter and subscribe to our Newsletter to stay tuned to our events and other news.

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

The agenda of this meeting is empty