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, coût des conditions, AoS vs SoA, tableaux en tout genre,
  • rudiments de calcul flottant, nombres aléatoires, coût 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 :

Pour vous inscrire à cette formation, contactez CNRS Formation Entreprises : . Toutefois, si vous êtes personnel du CNRS ou d'une université française, votre inscription est gratuite via notre serveur : https://cours.idris.fr