6 June 2023 - Performance-aware C++ programming (Registrations closed)
The C++ programming language is a systems-level language pervasive in many areas including scientific computing. This complex language provides users with a multitude of approaches to solving complex tasks, but not all programming paradigms or approaches are equal in terms of performance.
This 'back-to-basics' training shifts slightly away from over-abstraction or potential overuse of libraries and focuses primarily on performance through the use of the language itself. We show significant speedups are possible through several key principles:
- Having some understanding of the hardware (bandwidth, latency, caches)
- Data-Oriented Programming versus Object-Oriented Programming
- Vectorization and parallelization
- Compiler and how to get the most out of it
By the end of the training you will have some intuition on performance and what affects it, as well as pointers for improving performance in your own projects.
Whether your goal is shortening the calculation time of your simulations/workloads or enabling solutions which are otherwise impractical, extracting the most out of the available hardware is a key skill. This training provides an introduction to this topic with a few exploratory trips into the core details.
Intermediate level, some experience with C++ is recommended
Anyone with an interest in performance-critical applications
Date & time: 6/06/2023 - from 9.00 am to 11.30 am
Location: online (after registration, a link will be sent to you a few days prior to the training)
Registrations for this training are now closed.
At the Belgian level, different lectures are proposed by the regional centers. Find a list:
A nearly exhaustive list of past national training courses up to August 2023 is presented on this file (see table below). This may be an indication of the future training courses you can expect. As new training courses are constantly being proposed, for more information on upcoming trainings, please consult the information directly on the CÉCI and VSC website (see above).
Overview table of the training courses regularly provided by the different belgian organization
The EuroCC training Portal
Training videos and recording
Many of them are presented in our Training Videos page.
HPC Teaching Kit
The HPC teaching kit is a set of documents and videos that can be used as support to present HPC in computer science courses. At the moment, only the english and french versions are availabe. The kit consists firstly of a 2-part slide deck on HPC (English: part 1 and part 2; French: part 1 and part 2), highlighting examples of applications, the Belgian infrastructure, the structure of a supercomputer and the principle of parallelization. Recording of these presentations are also available on youtube (English and French)
Feel free to distribute these documents to anyone who might be interested. The powerpoint versions of the slide deck and of the starting kit are also available, on request, for anyone wishing to modify it.
The next LUMI training has just been announced and there are some preliminary target dates for the next courses:
8 February 2024: LUMI Introductory Course
This one-day online course serves as a short introduction to the LUMI architecture and setup. It will include lessons about hardware architecture, compiling, using software and running jobs efficiently. After the course you will be able to work efficiently on both the CPU (LUMI-C) as well as GPU partition (LUMI-G).
As a prerequisite, participants should have a basic knowledge of HPC cluster computer, e.g., as provided by the introductory VSC and CÉCI courses and familiarity with the Linux command line. Some familiarity with programming in C, Fortran, Python and/or shell programming can help with some of the topics of the course. The course is not a high-performance computing introduction course but a discussion of the specifics and peculiarities of LUMI.
After completing this course, participants will have gained a better understanding of:
- LUMI’s hardware and how to effectively compile software on it.
- The module system and EasyBuild for software management.
- Submitting and managing jobs with Slurm, including the use of job arrays and GPU/CPU binding.
- Identifying and mitigating I/O bottlenecks in the LUSTRE file system.
The course is aimed both at users who already have an active project on LUMI and prospective users considering applying soon for a project. User IDs will be provided to those who do not yet have a user ID on LUMI.
In case the demand from Belgium is very high and not enough people can be accepted, the LUMI-BE organisation will organise a similar course for Belgian users.
More information and registration:
More information can be found at https://lumi-supercomputer.eu/events/lumi-intro-course-feb08/.
Link for registration: https://ssl.eventilla.com/event/R14aP
This introductory course will be repeated later in the year, but dates have not yet been set. Furthermore, if there is enough interest, we will organise one specifically targeting users from Belgium.
Besides this 1-day introductory course, the following events are also planned:
4-day Comprehensive Course
Our 4-day comprehensive course with more details about running efficiently and tools to analyse program performance and for development and debugging, will be organised twice this year in hybrid form: onsite with online broadcast (but with facilities for online participants to interact with the lecturers and other HPC experts from LUST, HPE and AMD who are onsite).
The current target dates are late April for a course in Helsinki and September for a course in Amsterdam.
There will be a new edition of the LUMI hackathon where selected projects can work with specialists from HPE, AMD and LUST to solve performance problems with codes they develop for AMD GPU systems. The current target period is October, with the likely location in Brussels.
Possible future trainings
We are considering organising a training on using AI tools on LUMI and a separate short training on performance profiling and optimisation.
We may organise further courses on HIP, OpenMP or SYCL specifically for AMD GPUs but, for such courses or domain-specific courses, we rely mostly on courses organised by other European programs.
Local organisations, such as the national competence centres, may also organise courses that are open to others, so this offering may be augmented with further courses.
Specific LUMI trainings and events organised by the LUMI support team are announced on the LUMI website