Sélectionner une page
Formations Langage Autres langages Formation C++20 Multithreading Avancé

Formation Programmation Avancée Multithread C/C++20

Rated 4,5 out of 5
Logo Formation C++17 Multithreading
Prix 1890€ HT / personne
Durée 3 jours (21 heures)
Parcours CPF

Paris | Classe Virtuelle

Il ne reste que quelques places
Cafés et déjeuners offerts en interentreprises
Disponible en intra-entreprise pour former votre équipe

Présentation

Notre formation en C++17 et 20 vous permettra d’améliorer la qualité de votre code et de faciliter la gestion de vos projets. Vous pourrez facilement implémenter des fonctionnalités avancées de C++ pour garantir la qualité de votre code.

Dans cette formation, destinée aux développeurs, vous apprendrez à utiliser les principales fonctionnalités de C++17 et 20 telles que les modules, les concepts, les lambdas génériques, les instructions if constexpr et la bibliothèque standard étendue.

Vous aborderez les concepts, procédés de modélisation et design patterns des applications multithread ainsi qu’un large choix d’outil facilitant leurs conceptions et développements. Un regard approfondi sera porté sur les primitives fournies par le matériel et le système, ainsi que leurs impacts en termes de performance.

De mêmes, certaines approches issues de la programmation temps-­réel, pertinentes dans les applications multi­thread classiques ­et leur optimisation, seront étudiées.

Comme toutes nos formations, celle-ci vous présentera la dernière version stable en date et les nouveautés de C++20.

Pour ce qui est de C++23, nous attendons que la version soit stable pour l’utiliser durant cette formation, mais les nouveautés seront évoquées dans notre programme.

 

Objectifs

  • Comprendre les concepts fondamentaux de la programmation en C++
  • Maîtriser les dernières fonctionnalités de C++17 et 20
  • Utiliser les bibliothèques standard de C++
  • Maîtriser les bonnes pratiques de programmation en C++

 

Public visé

  • Développeurs
  • Architectes

 

Pré-requis

  • Connaissance de l’environnement de développement Linux
  • Connaissance des langages C et C++

 

Pré-requis logiciel

 Un environnement de développement C++ opérationnel avec un compilateur récent.

Programme de la formation Multithread C/C++ version 20

 

Concepts de base de la programmation multi­thread

  • Modèle de gestion de tâches et de mémoire
  • Principe du fonctionnement matériel

 

Les nouveautés de C++17

  • Templates and Generic Code
  • Lambda
  • Attributes
  • Syntax cleanup
  • Cleaner multi-return and flow control
    • Library additions :
    • Data types
    • Invoke stuff
  • File System TS v1
  • Nouveaux algorithmes implémentés
  • Threading : Parallelism TS v1
  • Traits : swap, is_aggregate, has_unique_object_representations

 

Étude des APIs POSIX/Linux

  • Threads
  • Primitives de synchronisations
  • Mémoire partagée & sémaphore SYSV, l’approche multi­process
  • Thread local storage

 

Parallélisation des algorithmes

  • Partitionnement des données
  • Modélisation des dépendances et interactions, définition du pipeline
  • Correspondance avec l’architecture
  • Réduction des données
  • Exemple de patterns

 

Architecture matérielle

  • Mono/multi processeur, mono/multicœur
  • « Hyperthreading »
  • Gestion des caches
  • Gestion de la mémoire et NUMA

 

Ordonnancement

  • Anatomie d’une tâche
  • Changement de contexte et coût en performance
  • Ordonnancement
  • L’ordonnanceur Linux
  • Gestion des priorités
  • Les queues temps-réel
  • Implémentation des primitives de synchronisation.
  • Inversion de priorité

 

Gestion de la mémoire

  • Mémoire virtuelle : MMU, pages et TLB
  • Les optimisations en multi­process
  • Mémoire partagée, TLS
  • Le support de NUMA

 

Un regard sur la latence et le temps-­réel

  • Anatomie d’un syscall
  • Latence des syscalls
  • Gestion de la mémoire et des I/O en userland

 

Étude et pratique des outils de développement

  • Debug multithread sur gdb/lldb
  • Kernel
    • perf
    • lockdep
    • stat
    • autre
  • La suite valgrind, intrinsic
  • Outils d’analyse et de contrôle de la gestion mémoire et des caches.
  • Outils d’analyse et de contrôle du scheduler

 

Étude et pratique des outils de développement

  • Thread safe containers
  • Lock­free data structure
  • Design patterns

 

Optimisation

  • Cache fighting & false sharing
  • Contention autour des verrous
  • Hyper­threading

 

Découverte des nouveautés de C++20

  • Les concepts
  • Les ranges
  • Les modules
  • Les coroutines
  • La réflexion
  • Le réseau
  • Les graphismes 2D (à la manière de Cairo)

 

Fonctionnalités C++ existantes supprimées

  • Suppression des trigraphes
  • Radiation des registres
  • Suppression de l’opérateur déconseillé +++.
  • Suppression des spécifications d’exception obsolètes
  • Suppression de auto_ptr

 

Nouveautés du futur C++23

  • Suffixes littéraux pour std::size_t
  • basic_string et std::basic_string_view
  • La librairie stacktrace
  • Le header <stdatomic.h>
  • Suppression de la liste de paramètres vides inutiles () des expressions lambda

Langues et Lieux disponibles

Langues

  • Français
  • Anglais / English

Lieux

  • France entière
    • Paris
    • Lille
    • Reims
    • Lyon
    • Toulouse
    • Bordeaux
    • Montpellier
    • Nice
    • Sophia Antipolis
    • Marseille
    • Aix-en-Provence
    • Nantes
    • Rennes
    • Strasbourg
    • Grenoble
    • Dijon
    • Tours
    • Saint-Étienne
    • Toulon
    • Angers
  • Belgique
    • Bruxelles
    • Liège
  • Suisse
    • Genève
    • Zurich
    • Lausanne
  • Luxembourg

Nos Formateurs Référents

Julien

Julien

Notre formateur référent sur cette formation partagera son incroyable expérience acquise chez Facebook !

Témoignages

Rated 4,0 out of 5
19 avril 2023

Les + : La compréhension du fonctionnement des processeurs et les implications dans le code

Les – : Le temps pour bien appréhender toutes les notions

Coder et comprendre en même temps demande énormément de concentration

Valérie B. de chez VALEO VISION

Afficher tous les témoignages

Rated 4,0 out of 5
19 avril 2023

Les + : La compréhension du fonctionnement des processeurs et les implications dans le code

Les – : Le temps pour bien appréhender toutes les notions

Coder et comprendre en même temps demande énormément de concentration

Valérie B. de chez VALEO VISION
Rated 5,0 out of 5
19 avril 2023

Les + : adaptabilité

Les – : on passe vite sur certains points qui sont sur le support. Avoir un support + complet pour pouvoir s’y référer si on a pas le temps de voir ça en pendant le cours.

Etienne E. de chez Onera

Noter la formation

Prix 1890€ HT / personne
Durée 3 jours (21 heures)
Parcours CPF

Paris | Classe Virtuelle

Il ne reste que quelques places
Cafés et déjeuners offerts en interentreprises
Disponible en intra-entreprise pour former votre équipe

UNE QUESTION ? UN PROJET ? UN AUDIT DE CODE / D'INFRASTRUCTURE ?

Pour vos besoins d’expertise que vous ne trouvez nulle part ailleurs, n’hésitez pas à nous contacter.

ILS SE SONT FORMÉS CHEZ NOUS

partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp
partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp