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

0,0 rating
Logo Formation C++17 Multithreading

2100€

1890€ HT / personne

3 jours (21 heures)

Paris
Il ne reste que quelques places
Disponible aussi en intra-entreprise pour former votre équipe.

Présentation

Cette formation sur la programmation parallèle en général, et l’approche multi­thread en particulier, vous permettra d’approfondir vos connaissances sur les architectures multi­cores modernes, leur support dans Linux (2.6+), les outils de développements afin de développer des applications multi­thread plus simples et plus performantes.

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 ses nouveautés : C++17, ISO/IEC 14882:2017 sortie en mars 2017 ainsi que la découverte des nouveautés de C++20.

 

Objectifs

  • Connaître les nouveautés de C++17 & C++20.
  • Maîtriser les concepts de programmation avancés en contexte multithread

 

Public visé

Développeurs, Architectes

 

Pré-requis

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

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

 

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

 

Le threading avec C++17

 

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)
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

    Afficher tous les témoignages

    Noter la formation

    2100€

    1890€ HT / personne

    3 jours (21 heures)

    Paris
    Il ne reste que quelques places
    Disponible aussi en intra-entreprise pour former votre équipe.

    Une question ? Un projet ?

    Pour des informations complémentaires, n’hésitez pas à nous contacter.