
Formation : C++ Scientifique Moderne
Responsable : Olga Abramkina
Intervenants : Olga Abramkina, David Chamont, Karim Hasnaoui et Thomas Padioleau
Cette formation s'adresse à toute personne souhaitant se mettre à jour sur les nouveautés du langage. À l’issue de cette formation, vous serez en mesure de :
- 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é
- Pré-requis
- Durée et modalités
- Contenu de la formation
- Prochaines sessions
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 :
- de 09h00 à 17h00
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).
Pour une exécution efficace des parties pratiques, celles-ci se dérouleront sur le supercalculateur Jean Zay. Une station de travail avec accès au calculateur de l'IDRIS est mise à disposition des apprenants. Une expérience dans l’utilisation d’un supercalculateur, tout comme un accès préalable à celui-ci, ne sont pas requis.
Pour consulter les dates des prochaines sessions de cette formation, rendez-vous sur la page suivante :
Inscription
Personnel CNRS/EPSCP/université française | Participants externes |
Vous êtes personnel du CNRS, d'une université française ou d'un établissement public à caractère scientifique, culturel et professionnel (EPSCP) ? Votre inscription est gratuite via notre serveur. | Nos formations s’adressent à tous les professionnels des entreprises, organismes publics et particuliers. |