Choisissez votre langue
Cours de programmation parallèle
Plus de 2 millions d'étudiants dans le monde

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.

Dedika pour les entreprises

Ce que vous allez apprendre:

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 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 activité et aux besoins spécifiques de votre entreprise.

Cliquez ici

Contenu du cours

8 Chapitres • 40 LeçonsDurée entre 4 et 360 heures (vous décidez)

Chapitre 1Voir les détails

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 2Voir les détails

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 3Voir les détails

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 4Voir les détails

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 5Voir les détails

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 6Voir les détails

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 7Voir les détails

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 8Voir les détails

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.

Certification

Votre certificat valide de réussite

Ce cours est fait 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.

Ce que disent nos élèves

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...
Giulio Carlo
Giulio CarloÉtudiant en Marketing Digital
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.
Mariana Ferres
Mariana FerresÉtudiante en Photographie
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 !
Luciana Alvarenga
Luciana AlvarengaÉtudiante en Design d'Ongles
La plateforme est rapide, simple à utiliser. La diversité du contenu et les vidéos complémentaires aident beaucoup dans l'apprentissage.
André Felipe
André FelipeÉtudiant en Ingénierie de Prompt

Formations principales

FAQ

Qui est Dedika ?

Le certificat est-il valable en France ?

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