Les bonnes pratiques pour la performance

1 250 euros HT / 1 pers.

Avancé

Cycle Performance

21 heures de cours sur 5 jours

Objectif :

Découvrir et mettre en œuvre les bonnes stratégies de développement et de compréhension du matériel afin de garantir un haut niveau de performance dans des applications C++.

Bénéfices attendus :

  • Connaître les sources logicielles et matérielles de la performance.

  • Savoir adapter sa pratique du langage C++ afin de garantir les performances d’un logiciel.

Public :

  • Ingénieurs, techniciens et scientifiques soucieux des performances de leur logiciels. 

  • Une première expérience en C++ est nécessaire.

Programme :

Introduction

Historique des architectures modernes C++ comme un langage performant 

Adéquation Architecture/Algorithme


Cycle de vie des objets

Valeur, référence, pointeur
Optimisation et élision des copies
Sémantique de transfert
Principe de la RAII
Pointeur à sémantique riche 

Règle du zéro
Mise en pratique : exercices, évaluation


Gestion du polymorphisme

Polymorphisme d’inclusion  

Polymorphisme paramétrique
Coût et surcoût du polymorphisme
Le CRTP
Mise en pratique : exercices, évaluation


Impact de l’architecture

Application Compute bound et Memory bound
Principe de fonctionnement des caches 

Impact sur le design logiciel

Impact sur l’utilisation des composants de STL
Mise en pratique : exercices, évaluation


Techniques d’optimisation de code

Fusion et fission des boucles
Tuilage
Array of Structures/Structure of Arrays Le modèle AoSoA
Mise en pratique : exercices, évaluation