
Cours de programmation parallèle
Maîtrisez l'ensemble de la pile logicielle de la programmation parallèle — des threads CPU et OpenMP aux clusters MPI et aux GPU CUDA. Ce cours vous fournit les outils, la théorie et la pratique nécessaires 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 votre équipe va maîtriser:
Vous développerez 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 schémas 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 verrouillage. Les outils d'analyse de performance et les stratégies d'optimisation — notamment le blocage de cache, l'équilibrage de charge et la modélisation en toit — 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 tels que Dask et TBB. À la fin, vous serez en mesure de concevoir, mettre en œuvre et ajuster des applications parallèles complètes pour des charges de travail réelles.
Comment votre équipe apprend de façon pratique Cours de programmation parallèle
Comment votre équipe pratique Cours de programmation parallèle
Des professionnels de ces entreprises étudient sur Dedika









Contenu du cours
8 Chapitres • 40 LeçonsDurée entre 4 et 360 heures (vous décidez)
Chapitre 1MasquerCacher les détailsVoir les détailsFondamentaux du calcul parallèle
Fondamentaux du calcul parallèle
Leçon 1 • Présentation de l'architecture matérielle
Passe en revue les cœurs 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 les lois d'Amdahl et de Gustafson, ainsi que les métriques d'efficacité. Les étudiants acquièrent des outils quantitatifs 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 suivants.
Leçon 5 • Pourquoi le parallélisme est important
Aborde 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 présentée plus tard.
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 compare-and-swap et les garanties d'ordonnancement mémoire. Prépare les étudiants aux structures de données sans verrou dans les chapitres suivants.
Leçon 2 • Exclusion mutuelle et verrous
Enseigne les mutex, les spinlocks et le scoping de verrou pour protéger l'état partagé. Traite directement les risques de conditions de course introduits au chapitre 1.
Leçon 3 • Fondamentaux des threads
Aborde la création, la jointure 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
Présente 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 des événements.
Leçon 5 • Pools de threads et files de travaux
Aborde la conception de pools de threads pour amortir le surcoût de création et équilibrer la charge. Relie les API de threads brutes aux frameworks de tâches de plus haut niveau introduits plus tard.
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 • Portée des données et réduction
Enseigne les clauses private, shared, firstprivate et reduction pour contrôler la visibilité des variables. Prévient les conditions de course sans verrouillage manuel.
Leçon 2 • Boucles parallèles et partage de travail
Aborde 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
Aborde 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
Présente le modèle d'exécution fork-join et la syntaxe des directives du compilateur. Établit le modèle mental que les étudiants utiliseront pour toutes les constructions OpenMP.
Leçon 5 • Parallélisme de tâches OpenMP
Présente 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
Aborde 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
Aborde les collectives broadcast, scatter, gather, reduce et all-to-all. Remplace les motifs point à point manuels par des appels de bibliothèque optimisés.
Leçon 4 • Performances et scalabilité MPI
Analyse les stratégies de latence, de bande passante et de recouvrement 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
Présente les types de données MPI personnalisés pour les données non contiguës et la division des communicateurs. Permet une communication efficace de 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
Aborde les workflows d'optimisation pilotés par profileur et les motifs de bugs GPU courants. Équipe les étudiants pour diagnostiquer et corriger les problèmes de performance et de correction.
Leçon 2 • Hiérarchie mémoire CUDA
Aborde la mémoire globale, partagée, constante et les registres avec des motifs d'accès. L'utilisation efficace de la mémoire est le levier principal pour les performances GPU.
Leçon 3 • Techniques d'optimisation de kernel
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 kernels écrits dans les sections précédentes.
Leçon 4 • Modèle de programmation CUDA
Présente les grilles, blocs, threads et le modèle d'exécution SIMT. Relie le matériel GPU du chapitre 1 à l'abstraction logicielle CUDA.
Leçon 5 • Flux et concurrence CUDA
Présente les flux, événements et l'exécution concurrente de kernels pour le recouvrement de travail. Étend les stratégies de recouvrement introduites dans le chapitre MPI aux GPU.
Chapitre 6MasquerCacher les détailsVoir les détailsAlgorithmes parallèles et structures de données
Algorithmes parallèles et structures de données
Leçon 1 • Structures de données sans verrou
Conçoit des piles, files d'attente et tables de hachage sans verrou en utilisant les 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
Aborde le BFS, le SSSP et les composantes connexes en utilisant des frameworks de graphes parallèles. Applique la communication collective et le parallélisme de tâches à des charges de travail irrégulières.
Leçon 3 • Analyse du travail et de l'envergure
Présente 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 parallèle et scan
Aborde les algorithmes de scan inclusif et exclusif et leurs applications. Le scan est une primitive fondamentale utilisée dans le tri, le compactage 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 à l'exécution parallèle. S'appuie sur les primitives de scan et l'analyse travail-envergure des sections précédentes.
Chapitre 7MasquerCacher les détailsVoir les détailsAnalyse des performances et optimisation
Analyse des performances et optimisation
Leçon 1 • Profilage d'applications parallèles
Aborde les compteurs de performance matérielle, 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 Roofline et analyse des goulots d'étranglement
Applique le modèle roofline pour classer les kernels 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 du surcoût de communication
Enseigne l'agrégation de messages, le recouvrement et le routage sensible à 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
Aborde le partitionnement statique, le vol de travail dynamique et l'ordonnancement guidé. Résout le déséquilibre de charge qui limite la scalabilité dans les applications réelles.
Leçon 5 • Optimisation de la hiérarchie mémoire
Enseigne le blocking de cache, le prefetching et l'élimination du faux partage. Traite directement la topologie de cache et NUMA introduite au chapitre 1.
Chapitre 8MasquerCacher les détailsVoir les détailsMotifs parallèles avancés et applications
Motifs parallèles avancés et applications
Leçon 1 • Conception d'applications parallèles de bout en bout
Guide les étudiants à travers l'analyse des besoins, 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 pipeline et wavefront
Aborde les étages de pipeline logiciel, le calcul wavefront et l'analyse de 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 des rangs MPI avec des threads OpenMP par nœud. Intègre les chapitres 3 et 4 en 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 de tâches, les seuils de coupure et l'optimisation de l'envergure. S'appuie sur les tâches OpenMP et l'analyse travail-envergure des chapitres précédents.
Leçon 5 • Stencil et algèbre linéaire dense
Aborde les calculs de stencil tuilés et les opérations matricielles parallèles en utilisant la décomposition de type BLAS. Applique le blocking de cache et les kernels GPU à des charges de travail numériques.
Votre certificat valide de réussite
Ce cours est pour vous :
Ingénieurs logiciels cherchant à extraire davantage de vitesse de bases de code existantes.
Étudiants en informatique se préparant à des rôles de recherche en calcul haute performance.
Scientifiques des données dont les pipelines Python sont trop lents pour les charges de travail de production.
Développeurs de jeux souhaitant exploiter pleinement les CPU multi-cœurs et le matériel GPU.
Chercheurs exécutant des simulations qui doivent passer à l'échelle au-delà d'une seule machine.
Ingénieurs backend effectuant une transition vers des rôles de performance systèmes ou infrastructures.
Cours associés
FAQ
Qui est Dedika ?
Le certificat est-il valable au Maroc ?
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



















