This page was translated by an AI (LLM) with a cursory human check and is awaiting full review.

Modern Scientific C++
Manager : Olga Abramkina
Instructors : Olga Abramkina, David Chamont, Karim Hasnaoui and Thomas Padioleau
This training is aimed at anyone wishing to update their knowledge on the new features of the language. At the end of this training, you will be able to:
- Be aware of some limitations of C++98.
- Understand the new syntax features of C++ 11/14/17/20 that address them.
- Better understand the extent of what the standard library offers.
- Address issues specific to scientific computing.
- Target audience
- Prerequisites
- Duration and practical info
- Course content
- Upcoming sessions
Target audience
Researchers and engineers who use or have used C++ in an old version (before C++11) and who wish to get up to speed on the new features of the language and the standard library, with the aim of writing software applications for computing and scientific data processing.
Prerequisites
Knowledge of old C++ syntax (before C++11), including some basics on the following topics:
- namespaces
- references vs pointers
- heap memory allocation
- function overloading
- exception handling
- classes and objects
- public inheritance
- templates
Duration and practical info
This training lasts 3 days:
- from 09:00 to 17:00
It takes place exclusively in-person at the premises of IDRIS in Orsay (91).
Attendance
Minimum : 8 people ;
Maximum : 20 people.
Plan
Day 1
Central problems of old C++, best practices that address them, which have become syntactic novelties in modern C++, notably:
- problems with numbers, uniform initialization, type inference,
- problems with pointers, RAII, smart pointers, forward references,
- problems with classes, default functions, function objects, lambdas,
- problems with templates, aliases and generic variables, constant expressions.
Day 2
Standard library, new best practices, programming styles, and the very latest syntactic novelties of the language, notably:
- generic programming, meta-functions, variadic templates, concepts,
- functional programming, tuples, variants, optionals and expected, ranges,
- concurrent programming, threads, asynchronous execution, execution policies.
Day 3
Some topics more specific to scientific computing, with a focus on specific C++ tools:
- basics of profiling with time, chrono, QuickBench, BuildBench,
- basics of optimization, cost of conditions, AoS vs SoA, arrays of all kinds,
- basics of floating-point computing, random numbers, cost of mathematical functions,
- what if we gave units to our values?
💡 Practical work (about 50% of the time).
For an efficient execution of the practical parts, these will take place on the Jean Zay supercomputer. A workstation with access to the IDRIS supercomputer is provided to the learners. Experience in using a supercomputer, as well as prior access to it, are not required.
To view the dates of the upcoming sessions for this training, go to the following page:
Registration
CNRS/French university staff | External participants |
Are you a member of CNRS or a French university? Your registration is free via our server. | Our training is aimed at all professionals from companies, public bodies and individuals. |