Flèche gauche

Retour à la recherche

Comparer
Comme Comme
star--4

Formation Langage C/C++, programmation Multicore

À propos de cette formation

Horloge
21h - 3 jours
Disponible en e-learning
Coche
Action de formation

Niveau intermédiaire requis

Pièce
Prix sur demande
Formation éligible OPCO
Lieu
France

Description

Vous apprendrez les architectures et la programmation Multicore ainsi que les techniques de mise en œuvre d'une approche multithread ou multiprocessus et les langages dédiés à la programmation parallèle. Vous travaillerez également sur les contraintes en matière de synchronisation d'accès aux données et les précautions à prendre.

En savoir plus

Objectifs pédagogiques

  • Maîtriser les enjeux de la programmation Multicore
  • Concevoir et développer des applications à base de threads et de processus
  • Maîtriser les modèles de programmation parallèle et les librairies disponibles
  • Déboguer et profiler des applications Multicore

Contenu de la formation

  • Présentation
    • Enjeux de la programmation Multicore.
    • Tableau des technologies utilisables : processus, thread et parallélisme.
    • Description du fonctionnement d'un processeur.
    • Architecture en "Hyperthreading".
    • Architectures des processeurs INTEL et AMD.
    • Architectures NVidia et API.
    • Architecture en mémoire partagée vs mémoire distribuée.
  • Modélisation des applications
    • Importance des aspects modélisation.
    • Patterns de mise en parallèle des traitements.
    • Utilisation des mécanismes asynchrones.
    • Développer une nouvelle application : précautions et modélisation. Eviter les "singletons".
    • Modifier une application existante en Multicore.
    • Choix d'architecture : un compromis synchronisation et performance. Choix multiprocessus/multithreads.
  • Threads
    • Apport des threads dans une application industrielle.
    • Ordonnancement des threads.
    • Gestion des stacks et "call stack" dans les threads.
    • Débogueurs multithreads.
    • Gestion des objets de synchronisation : sections critiques, Mutex et Sémaphores.
    • Développer "thread safe".
    • API de threads TBB, Clik++, C++11, boost threads, pthreads.
    • Travaux pratiques : Threads et synchronisation en C/C++.
  • Processus
    • Espaces d'adressage des processus, organisation.
    • Critères de choix d'une approche multiprocessus.
    • Techniques de communication interprocessus (IPC).
    • Outils de debugging multiprocessus
    • Avantage et inconvénients des techniques multiprocessus.
    • Travaux pratiques : Gestion de traitements asynchrones avec l'API C/C++.
  • La programmation parallèle
    • Apport et objectifs de la programmation parallèle.
    • La librairie "OpenMP" C++ (programmation mémoire partagée).
    • La librairie "OpenMPI" (programmation mémoire distribuée).
    • Utiliser les GPU des cartes graphiques pour le calcul.
    • Kits de NVidia (CUDA) et ATI.
    • La librairie "OpenAcc" pour la programmation GPU.
    • La librairie "OpenCL" pour la programmation parallèle CPU et GPU.
    • Travaux pratiques : Paralléliser des algorithmes avec "OpenMP" en C++. Utilisation de l'API OpenCL.
  • Synthèse et conclusion
    • Conclusion des techniques étudiées.
    • Avenir du C++ avec le multicore.

Suivi de l'exécution et évaluation des résultats

  • Feuille de présence signée en demi-journée, Évaluation des acquis tout au long de la formation, Questionnaire de satisfaction, Attestation de stage à chaque apprenant.

Diplôme / Certification

Pas de certification

star--4

L'organisme de formation

TechnoWide

Siège social: MERIGNAC CEDEX

Public concerné

Développeurs, architectes logiciels, chefs de projet.

Pré-requis

Bonnes connaissances de C ou de C++. Connaissances de base des concepts liés aux applications Multicore.

Conditions d'accès

Accessibilité

Les personnes atteintes de handicap souhaitant suivre cette formation sont invitées à nous contacter
directement, afin d'étudier ensemble les possibilités de suivre la formation.

Capacité

1 à 10 personnes

Délai d'accès

3 semaines

Plus qu'une formation !

Équipe pédagogique

Votre formateur est un consultant et architecte logiciel avec plus de 10 d'expériences pédagogiques et techniques.

Ressources pédagogiques

  • Moyens pédagogiques : Réflexion de groupe et apports théoriques du formateur, Travail d'échange avec les participants sous forme de réunion-discussion, Utilisation de cas concrets issus de l'expérience professionnelle, Validation des acquis par des questionnaires, des tests d'évaluation, des mises en situation et des jeux pédagogiques, Remise d'un support de cours.
  • Moyens techniques en Présentiel : Accueil des stagiaires dans une salle dédiée à la formation, équipée d'ordinateurs, d'un vidéo projecteur d'un tableau blanc et de paperboard.
  • Moyens techniques en Distanciel : A l'aide du logiciel Teams, un micro et une caméra pour l'apprenant, Suivez une formation en temps réel et entièrement à distance. Lors de la classe en ligne, les apprenants interagissent et communiquent entre eux et avec le formateur. Les formations en distanciel sont organisées en Inter-Entreprise comme en Intra-Entreprise. L'accès à l'environnement d'apprentissage (support de cours, labs) ainsi qu'aux preuves de suivi et d'assiduité (émargement, évaluation) est assuré.
Comparer
Comparez jusqu'à 3 cours

Connectez-vous !

Retrouvez vos formations, financements et Organismes préférés dans l'onglet

MON CATALOGUE DE FORMATION

Pour conserver vos favoris, créer votre compte gratuit.

Se connecter