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

23-26 April 2024: Comprehensive general LUMI training (hybrid)

Content:
This four-day hybrid course (on-site in Espoo and online) serves as a comprehensive introduction to the LUMI architecture and programming environment. It will include lessons on compiling and using software, programming models (HIP and OpenMP offload), porting, executing jobs, and optimizing applications to run on AMD MI250X. After completing the course, you will be able to work efficiently on both the CPU (LUMI-C) and the GPU partition (LUMI-G). This is an advanced, comprehensive course with emphasis on optimization of LUMI use and code development. The course is “on-site first”, i.e., the presentations are broadcast but there is little room for on-line interaction with the presenters.

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, and optimizing the layout of your programs on LUMI.
  • Identifying and mitigating I/O bottlenecks in the LUSTRE file system.
  • The various debugging tools from HPE Cray and AMD available on LUMI.

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. The course is meant for rather advanced users of HPC systems with an interest on optimizing for the specific system or code development. User IDs will be provided to those who do not yet have a user ID on LUMI.

More information and registration: 

More information can be found at https://www.lumi-supercomputer.eu/events/comprehensive-general-lumi-course/

Link for registration: https://ssl.eventilla.com/event/D4lad

This 4-day course will likely be repeated in the fall in Amsterdam, The Netherlands.

2-3 May 2024: LUMI introductory course (pre-announcement)

Content

This two-day hybrid course (on-site in Amsterdam and online) is a variant of our one-day course and 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). Compared to the one-day online course, there is more room for exercises and some topics are studied in a bit more detail, in particular the use of containers on LUMI (with, e.g., some references to the AI packages available on LUMI). This is an on-site first course, i.e., there will only be limited on-line interaction with the presenters.

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. 
  • Understanding 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.

More information & registration: 
https://www.lumi-supercomputer.eu/events/supercomputing-with-lumi-may2024/

Besides this 1-day introductory course, the following events are also planned:

4-day Comprehensive Course
The 4-day comprehensive course will likely be repeated in the fall 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 or Antwerp.

AI on LUMI
This will be an onsite-only workshop style course on May 29-30, 2024 in Copenhagen, Denmark (location close to the airport).
More information & registration: https://www.lumi-supercomputer.eu/events/lumi-ai-workshop-may2024/
The course will likely be repeated towards the end of the year in the Czech Republic.

Performance analysis and optimization

This course is still in a preparation phase and it is not clear yet if it will be onsite-only or hybrid, though the focus will be on the onsite participants. The date is June 11-12, 2024, and location is Oslo, Norway.
 

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