Trainings

 

EuroCC trainings

6 June 2023 - Performance-aware C++ programming (Registrations closed)

Description

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:

  1. Having some understanding of the hardware (bandwidth, latency, caches)
  2. Data-Oriented Programming versus Object-Oriented Programming
  3. Vectorization and parallelization
  4. 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. 

Target audience:

Intermediate level, some experience with C++ is recommended
Anyone with an interest in performance-critical applications

Practical information 

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. 

National trainings

At the Belgian level, different lectures are proposed by the regional centers. Find a list:

  • Here, for the CÉCI;
  • Here, for the VSC.

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).

Table containing the main training course given in Belgium

Overview table of the training courses regularly provided by the different belgian organization

 

International trainings

Training courses at all levels are also provided by various organizations and other national competence centers at the European level. They are listed in the EuroCC portal and the HPC portal.

A screenshot of the EuroCC acess portal

The EuroCC training Portal

Training videos and recording

Recording of past trainings and other videos can be found on the youtube channels of the CÉCI and of the VSC.

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)

It also contains a starting kit (English, French), a 2 pages document giving all the relevant information for anyone wanting to get started in HPC in Belgium.

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.

LUMI trainings

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 

Content:
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).

Prerequisite
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.

Learning outcome
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.

Target Group
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.

LUMI Hackathon
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.

 

Basic training on parallel computing is taken care of by the local courses organized by the VSC and CÉCI. We also plan a regular user meeting at the Belgian level.

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