Table des matières
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 :
David Chamont, Olga Abramkina, Karim Hasnaoui et Thomas Padioleau.
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