C++ Scientifique Moderne

Responsable :

Objectif :

  • Prendre conscience de certaines limites du C++98.
  • Comprendre les nouveautés syntaxiques de C++ 11/14/17/20 qui y répondent.
  • Mieux appréhender l’étendue de ce qu’offre la bibliothèque standard.
  • Aborder des problématiques spécifiques au calcul scientifique.

Public concerné :

Chercheurs et ingénieurs qui pratiquent ou ont pratiqué le C++ dans une version ancienne (avant C++11) et qui souhaitent se mettre à jour sur les nouveautés du langage et de la bibliothèque standard, dans le but d’écrire des applications logicielles de calcul et de traitement de données scientifiques.

Pré-requis

Connaissance de la syntaxe C++ ancienne (avant C++11), notamment quelques bases sur les thèmes suivants : espaces de noms, références vs pointeurs, allocation de mémoire sur le tas, surcharge des fonctions, gestion des exceptions, classes et objets, héritage public, templates.

Durée et modalités :

Cette formation dure 3 jours.

Elle a lieu uniquement en présentiel dans les locaux de l'IDRIS à Orsay (91).

Assistance :

Minimale : 8 personnes ; maximale : 20 personnes.

Plan

1er jour

Problèmes centraux du C++ ancien, bonnes pratiques qui y répondent, devenues des nouveautés syntaxiques du C++ moderne, notamment :

  • problèmes de nombres, initialisation uniforme, inférence de type,
  • problèmes de pointeurs, RAII, pointeurs améliorés, références doubles,
  • problèmes de classes, fonctions par défaut, objets-fonctions, lambdas,
  • problèmes de templates, alias et variables génériques, expressions constantes.

2e jour

Bibliothèque standard, nouvelles bonnes pratiques, styles de programmation et toutes dernières nouveautés syntaxiques du langage, notamment :

  • programmation générique, méta-fonctions, templates variadiques, concepts,
  • programmation fonctionnelle, tuples, variants, optionnels et attendus, plages,
  • programmation concurrente, fils, exécution asynchrone, stratégies d’exécution.

3e jour

Quelques thèmes plus spécifiques au calcul scientifique, avec focus sur les outils spécifiques du C++ :

  • rudiments de profilage avec time, chrono, QuickBench, BuildBench,
  • rudiments d'optimisation, cout des conditions, AoS vs SoA, tableaux en tout genre,
  • rudiments de calcul flottant, nombres aléatoires, cout des fonctions mathématiques,
  • et si on donnait des unités à nos valeurs ?

Travaux pratiques (environ 50 % du temps).

Équipement :

Supercalculateur de l'IDRIS

Intervenants :

S’inscrire à cette formation :

Les inscriptions via CNRS Formation Entreprises devraient s'ouvrir dans le courant du mois d'avril. Toutefois, si vous êtes personnel du CNRS ou d'une université française, votre inscription est gratuite et déjà accessible via notre serveur : https://cours.idris.fr