High-performance scientific computing in C++ (training course)

30th May 2023 07:00 AM
2nd June 2023 14:30 PM
Jülich Supercomputing Centre, Geb. 16.3, R. 213a (Ausbildungsraum 1)

Dr. Sandipan Mohanty

(Course no. 1582023 in the training programme 2023 of Forschungszentrum Jülich)

This course will take place as an on-site event at JSC.


Modern C++, with its support for procedural, objected oriented, generic and functional programming styles, offers many powerful abstraction mechanisms to express complexity at a high level while remaining very efficient. It is therefore the language of choice for many scientific projects. The approval of the latest language standard, C++20, has also opened up new abstraction layers and new exciting ways to organize code at all levels. However, achieving high performance by today's standards requires understanding and exploiting multiple levels of parallelism, as well as understanding C++ code from a performance centric viewpoint.

In this course, the participants will learn how to write C++ programs which better utilize typical HPC hardware resources of the present day. The course is geared towards scientists and engineers already familiar with C++17, who wish to develop maintainable and fast applications. Since C++20 is a relatively large structural change of the C++ language, similar to C++11, novel ways to write expressive, maintainable and fast code are now available to C++ programmers, which will be introduced in the course. The participants will learn techniques to better utilize CPU caches, instruction pipelines, SIMD functionality and multi-threading. Shared memory parallel programming on multiple CPU cores will be introduced using standard C++ parallel STL and Intel (R) Threading Building Blocks. The participants will also learn basic GPGPU programming using C++ template based generic programming techniques.

Contents level

in hours

in %

Beginner's contents:

0 h

0 %

Intermediate contents:

9.5 h

40 %

Advanced contents:

14.5 h

60 %

Community-targeted contents:

0 h

0 %


Good working knowledge of C++, especially the C++17 standard.

Target audience:

Advanced C++ programmers who want to use C++ on high-performance systems


This course is given in English.


4 days


30 May - 2 June 2023, 09:00-16:30

mornings: 3 lectures with very short exercises - 09:00-10:00, 10:15-11:15, 11:30-12:30
afternoons: intensive exercises - 13:30-16:30


Jülich Supercomputing Centre, building 16.3, room 213a (Ausbildungsraum 1)

Number of Participants:

minimum 5, maximum 26


Dr. Sandipan Mohanty, JSC


  • Institute for Advanced Simulation (IAS)
  • Jülich Supercomputing Centre (JSC)
Building 14.14 /
Room 4011
+49 2461/61-2526


Please register via the registration form until 22 May.

Course material of the last course:

Slides and exercises

Last Modified: 17.05.2023