
Cours de programmation parallèle
Maîtrisez la pile complète de la programmation parallèle — des threads CPU et OpenMP aux clusters MPI et GPU CUDA. Ce cours vous donne les outils, la théorie et la pratique concrète pour écrire des logiciels rapides et évolutifs sur du matériel moderne. Que vous cibliez des CPU multi-cœurs ou des GPU NVIDIA, vous apprendrez à mesurer, optimiser et obtenir des gains de performance réels.
Ce que vous allez apprendre:
Vous construirez une compréhension approfondie du calcul parallèle sur les architectures à mémoire partagée, à mémoire distribuée et GPU. Le cours couvre le threading de style POSIX, les directives OpenMP, les modèles de communication MPI et la programmation de noyaux CUDA depuis les bases. Vous étudierez des algorithmes parallèles incluant le tri, le balayage et le parcours de graphes, ainsi que des structures de données sans verrou. Les outils d'analyse de performance et les stratégies d'optimisation — notamment le cache blocking, l'équilibrage de charge et la modélisation roofline — sont abordés en détail. Les sujets avancés incluent la programmation hybride MPI et OpenMP, les méthodes numériques parallèles et les frameworks de haut niveau comme Dask et TBB. À la fin, vous serez équipé pour concevoir, implémenter et optimiser des applications parallèles complètes pour des charges de travail réelles.
Comment vous étudiez de façon pratique Cours de programmation parallèle
Comment vous pratiquez Cours de programmation parallèle
Pour vous, entreprise, qui souhaitez former votre équipe
Avec Dedika pour les entreprises, le cours inclut des exercices et des exemples adaptés à votre propre activité et aux besoins spécifiques de votre entreprise.
Contenu du cours
8 Chapitres • 40 LeçonsDurée entre 4 et 360 heures (vous décidez)
Chapitre 1MasquerCacher les détailsVoir les détailsFondements du calcul parallèle
Fondements du calcul parallèle
Leçon 1 • Aperçu de l'architecture matérielle
Passe en revue les cœurs de CPU, les caches, les bus mémoire et les multiprocesseurs de streaming GPU. Relie la topologie matérielle aux décisions de conception logicielle tout au long du cours.
Leçon 2 • Mesure des performances parallèles
Enseigne la loi d'Amdahl, la loi de Gustafson et les métriques d'efficacité. Les étudiants acquièrent des outils quantitatifs utilisés pour évaluer chaque programme qu'ils écrivent.
Leçon 3 • Concurrence vs. parallélisme
Distingue l'entrelacement concurrent de l'exécution simultanée réelle. Clarifie la terminologie utilisée dans tous les chapitres suivants.
Leçon 4 • Modèles de programmation parallèle
Présente les modèles à mémoire partagée, à passage de messages et parallèles de données. Fournit une taxonomie que les étudiants appliquent lors du choix des outils dans les chapitres ultérieurs.
Leçon 5 • Pourquoi le parallélisme est important
Couvre les limites de performance de l'exécution séquentielle et les moteurs économiques du matériel parallèle. Établit la motivation pour chaque technique introduite ultérieurement.
Chapitre 2MasquerCacher les détailsVoir les détailsThreads et programmation à mémoire partagée
Threads et programmation à mémoire partagée
Leçon 1 • Opérations atomiques et modèles mémoire
Explique les opérations atomiques matérielles, le comparer-échanger et les garanties d'ordonnancement mémoire. Prépare les étudiants aux structures de données sans verrou dans les chapitres ultérieurs.
Leçon 2 • Exclusion mutuelle et verrous
Enseigne les mutex, les spinlocks et le cadrage des verrous pour protéger l'état partagé. Adresse directement les risques de courses aux données introduits au Chapitre 1.
Leçon 3 • Fondamentaux des threads
Couvre la création, la jonction et le détachement de threads à l'aide d'API de style POSIX. Ancre les étudiants dans le modèle d'exécution avant d'introduire la synchronisation.
Leçon 4 • Variables de condition et barrières
Introduit les variables de condition pour la coordination producteur-consommateur et les barrières pour la synchronisation en masse. Étend le verrouillage à la coordination de threads basée sur les événements.
Leçon 5 • Pools de threads et files d'attente de travail
Couvre la conception de pools de threads pour amortir la surcharge de création et équilibrer la charge. Relie les API de threads brutes aux frameworks de tâches de plus haut niveau introduits ultérieurement.
Chapitre 3MasquerCacher les détailsVoir les détailsOpenMP pour le parallélisme à mémoire partagée
OpenMP pour le parallélisme à mémoire partagée
Leçon 1 • Cadrage des données et réduction
Enseigne les clauses private, shared, firstprivate et reduction pour contrôler la visibilité des variables. Empêche les courses aux données sans verrouillage manuel.
Leçon 2 • Boucles parallèles et partage de travail
Couvre les constructions parallel-for, sections et single pour distribuer les itérations de boucle. Applique directement le modèle parallèle de données du Chapitre 1.
Leçon 3 • Constructions de synchronisation OpenMP
Couvre les directives barrier, critical, atomic et flush pour un contrôle fin. Complète les connaissances sur les mutex et les opérations atomiques du Chapitre 2.
Leçon 4 • Modèle de programmation OpenMP
Introduit le modèle d'exécution fork-join et la syntaxe des directives du compilateur. Établit le modèle mental que les étudiants utilisent pour toutes les constructions OpenMP.
Leçon 5 • Parallélisme de tâches OpenMP
Introduit les directives task et taskwait pour le parallélisme irrégulier et récursif. Étend le partage de travail aux flux de contrôle non basés sur des boucles.
Chapitre 4MasquerCacher les détailsVoir les détailsProgrammation à mémoire distribuée avec MPI
Programmation à mémoire distribuée avec MPI
Leçon 1 • Modèle d'exécution MPI
Couvre le modèle SPMD, les communicateurs et l'identification de rang. Établit le contexte d'exécution distribué pour tous les programmes MPI.
Leçon 2 • Communication point-à-point
Enseigne les opérations d'envoi et de réception bloquantes et non bloquantes avec correspondance d'étiquettes. Construit les primitives de communication sous-jacentes à tous les motifs de plus haut niveau.
Leçon 3 • Opérations de communication collective
Couvre la diffusion, la dispersion, la collecte, la réduction et le tout-à-tout collectifs. Remplace les motifs point-à-point manuels par des appels de bibliothèque optimisés.
Leçon 4 • Performance et passage à l'échelle MPI
Analyse les stratégies de latence, de bande passante et de chevauchement communication-calcul. Applique les lois d'Amdahl et de Gustafson du Chapitre 1 aux programmes distribués.
Leçon 5 • Types de données dérivés et communicateurs
Introduit les types de données MPI personnalisés pour les données non contiguës et le fractionnement des communicateurs. Permet une communication efficace des structures de données complexes.
Chapitre 5MasquerCacher les détailsVoir les détailsProgrammation GPU avec CUDA
Programmation GPU avec CUDA
Leçon 1 • Profilage et débogage de programmes CUDA
Couvre les workflows d'optimisation guidés par le profileur et les motifs de bogues GPU courants. Équipe les étudiants pour diagnostiquer et corriger les problèmes de performance et d'exactitude.
Leçon 2 • Hiérarchie mémoire CUDA
Couvre la mémoire globale, partagée, constante et les registres avec les modèles d'accès. Une utilisation efficace de la mémoire est le levier principal pour la performance GPU.
Leçon 3 • Techniques d'optimisation des noyaux
Enseigne l'accès mémoire coalescé, le réglage de l'occupation et la réduction de la divergence de warp. Améliore directement le débit des noyaux écrits dans les sections précédentes.
Leçon 4 • Modèle de programmation CUDA
Introduit les grilles, les blocs, les threads et le modèle d'exécution SIMT. Relie le matériel GPU du Chapitre 1 à l'abstraction logicielle CUDA.
Leçon 5 • Streams CUDA et concurrence
Introduit les streams, les événements et l'exécution concurrente de noyaux pour chevaucher le travail. Étend les stratégies de chevauchement introduites dans le chapitre MPI aux GPU.
Chapitre 6MasquerCacher les détailsVoir les détailsAlgorithmes et structures de données parallèles
Algorithmes et structures de données parallèles
Leçon 1 • Structures de données sans verrou
Conçoit des piles, des files d'attente et des tables de hachage sans verrou à l'aide d'opérations CAS. Applique les primitives atomiques du Chapitre 2 aux structures de données à haute concurrence.
Leçon 2 • Algorithmes de graphes parallèles
Couvre le BFS, le SSSP et les composantes connexes à l'aide de frameworks de graphes parallèles. Applique la communication collective et le parallélisme de tâches aux charges de travail irrégulières.
Leçon 3 • Analyse du travail et de l'envergure
Introduit le modèle travail-envergure, le rapport de parallélisme et le théorème de Brent. Fournit le cadre analytique pour évaluer tous les algorithmes de ce chapitre.
Leçon 4 • Préfixe et scan parallèles
Couvre les algorithmes de scan inclusif et exclusif et leurs applications. Le scan est une primitive fondamentale utilisée dans le tri, la compaction et les algorithmes de graphes.
Leçon 5 • Algorithmes de tri parallèles
Enseigne le tri bitonique, le tri par fusion et le tri par base adaptés pour l'exécution parallèle. Repose sur les primitives de scan et l'analyse travail-envergure des sections précédentes.
Chapitre 7MasquerCacher les détailsVoir les détailsAnalyse et optimisation des performances
Analyse et optimisation des performances
Leçon 1 • Profilage d'applications parallèles
Couvre les compteurs de performance matériels, les profileurs d'échantillonnage et les outils basés sur les traces. Établit la base de mesure pour toutes les décisions d'optimisation.
Leçon 2 • Modèle de toit et analyse des goulots d'étranglement
Applique le modèle de toit pour classer les noyaux liés au calcul vs. liés à la mémoire. Guide les étudiants vers l'optimisation à plus fort impact pour un programme donné.
Leçon 3 • Réduction de la surcharge de communication
Enseigne l'agrégation de messages, le chevauchement et le routage conscient de la topologie pour les programmes MPI. Étend les concepts de performance MPI du Chapitre 4 avec des techniques d'optimisation.
Leçon 4 • Stratégies d'équilibrage de charge
Couvre le partitionnement statique, le vol de travail dynamique et l'ordonnancement guidé. Résout le déséquilibre de charge qui limite le passage à l'échelle dans les applications réelles.
Leçon 5 • Optimisation de la hiérarchie mémoire
Enseigne le blocage de cache, le préchargement et l'élimination du faux partage. Adresse directement la topologie de cache et NUMA introduite au Chapitre 1.
Chapitre 8MasquerCacher les détailsVoir les détailsMotifs et applications parallèles avancés
Motifs et applications parallèles avancés
Leçon 1 • Conception d'application parallèle de bout en bout
Guide les étudiants à travers l'analyse des exigences, la sélection d'algorithmes et la validation des performances pour une application parallèle complète. Synthétise toutes les compétences du cours.
Leçon 2 • Motifs de pipeline et de front d'onde
Couvre les étages de pipeline logiciel, le calcul par front d'onde et l'analyse du débit. Étend les concepts de pipeline du Chapitre 1 aux programmes parallèles multi-étages.
Leçon 3 • Programmation hybride MPI et OpenMP
Conçoit des programmes hybrides combinant les rangs MPI avec les threads OpenMP par nœud. Intègre les Chapitres 3 et 4 dans une stratégie de parallélisme multi-niveaux unifiée.
Leçon 4 • Parallélisme diviser-pour-régner
Enseigne la décomposition récursive des tâches, les seuils de coupure et l'optimisation de l'envergure. Repose sur les tâches OpenMP et l'analyse travail-envergure des chapitres précédents.
Leçon 5 • Algèbre linéaire dense et stencil
Couvre les calculs de stencil tuilés et les opérations matricielles parallèles utilisant la décomposition de style BLAS. Applique le blocage de cache et les noyaux GPU aux charges de travail numériques.
Votre certificat valide de réussite
Ce cours est pour vous :
Ingénieurs logiciels cherchant à améliorer la vitesse de leurs bases de code existantes.
Étudiants en informatique se préparant à des rôles de recherche en calcul haute performance.
Data scientists dont les pipelines Python sont trop lents pour des charges de production.
Développeurs de jeux souhaitant exploiter pleinement les CPU multi-cœurs et le matériel GPU.
Chercheurs exécutant des simulations ayant besoin de passer à l'échelle au-delà d'une seule machine.
Ingénieurs backend en transition vers des rôles de performance systèmes ou infrastructure.
Ce que disent nos apprenants
Vos cours sont parfaits. J'ai acheté le forfait d'un an et j'ai enfin l'opportunité de suivre divers sujets qui m'intéressent sans avoir besoin de changer de plateforme... je vous remercie pour tout ce que vous faites, je vous ai déjà recommandés à d'autres personnes...

J'aime la façon dont les leçons vont droit au but et comment je peux changer de chapitres et passer le contenu dont je n'ai pas besoin.

J'aime le contenu et la façon dont les vidéos sont présentées et transcrites, ce qui accélère le processus !

La plateforme est rapide, simple à utiliser. La diversité du contenu et les vidéos complémentaires aident beaucoup dans l'apprentissage.

Formations principales
FAQ
Qui est Dedika ?
Le certificat est-il valable en Côte d’Ivoire ?
Les cours sont-ils gratuits ?
Quelle est la charge de travail du cours ?
Comment sont les cours ?
Comment fonctionnent les cours ?
Quelle est la durée des cours ?
Quel est le coût ou le prix des cours ?
Qu'est-ce qu'un cours EAD ou en ligne et comment ça marche ?
Cours PDF




















