Langage C++ Scientifique Moderne

  • Action régionale
  • PDF
  •   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

Lundi 02 Décembre 2024

Partenaires

CNRS

Informations pratiques

IFSeM Formation
7, RUE GUY MÔQUET
94800 VILLEJUIF