Langage C++ Scientifique Moderne
- Action régionale
- Informatique
- David CHAMONT
Objectifs
- Appréhender certaines limites du C++98.
- Comprendre les nouveautés syntaxiques de C++ 11/14/17/20 qui y répondent.
- Mesurer l’étendue de ce qu’offre la bibliothèque standard.
- Réfléchir aux problématiques spécifiques au calcul scientifique.
Public
Chercheurs et ingénieurs qui pratiquent où 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.
Programme
-
Jour 1) 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.
Jour 2) Bibliothèque standard, nouvelles bonnes pratiques, styles de programmation et nouveautés syntaxiques récentes du langage, notamment :
- programmation générique, méta-fonctions, templates variadiques, concepts,
- programmation fonctionnelle, tuples, variants, optionels et attendus, plages,
- programmation concurrente, fils, execution asynchrone, stratégies d'execution.
Jour 3) Quelques thèmes plus inspirés du 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 ?
Méthodes pédagogiques
- Présentiel.
- Apporter son propre ordinateur portable.
- Alternance d’exposés (50 % du temps) et de travaux pratiques (50 % du temps).
- Les exposés sont donnés en français, mais tous les supports sont en anglais.
- Ressources pédagogiques en anglais, à disposition des stagiaires pendant et après la formation, via un site internet : exposés sous forme de Jupyter Notebooks, fichiers sources et solutions des exercices et des travaux pratiques.
Sessions passées 1
Partenaires
CNRS
Informations pratiques
94800 VILLEJUIF