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

Cours de programmation parallèle

Maîtrisez la pile complète de la programmation parallèle — des fils d'exécution CPU et OpenMP aux clusters MPI et GPU CUDA. Ce cours vous offre 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 multicœurs ou des GPU NVIDIA, vous apprendrez à mesurer, optimiser et obtenir des gains de rendement concrets.

Dedika pour 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 modèles de communication MPI et la programmation de noyaux CUDA depuis les bases. Vous étudierez les algorithmes parallèles, notamment le tri, le balayage et le parcours de graphes, ainsi que les structures de données sans verrou. Les outils d'analyse de rendement et les stratégies d'optimisation — dont le blocage de cache, la répartition de charge et la modélisation roofline — sont couverts en détail. Les sujets avancés incluent la programmation hybride MPI et OpenMP, les méthodes numériques parallèles et les cadriciels de haut niveau comme Dask et TBB. À la fin, vous serez en mesure de concevoir, mettre en œuvre 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 entreprises, le cours inclut des exercices et des exemples adaptés à votre propre entreprise et à ses besoins spécifiques.

Cliquez ici

Contenu du cours

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

Chapitre 1Voir les détails

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 en flux des GPU. Établit un lien entre la topologie matérielle et les décisions de conception logicielle tout au long du cours.

  • Leçon 2 • Mesure du rendement parallèle

    Enseigne la loi d'Amdahl, la loi de Gustafson et les mesures d'efficacité. Les étudiants acquièrent des outils quantitatifs pour évaluer chaque programme qu'ils écrivent.

  • Leçon 3 • Concurrence et parallélisme

    Fait la distinction entre l'entrelacement concurrent et 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élisme de données. Fournit une taxonomie que les étudiants appliquent lors du choix d'outils dans les chapitres suivants.

  • Leçon 5 • Pourquoi le parallélisme est important

    Couvre les limites de rendement 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 loin.

Chapitre 2Voir les détails

Fils d'exécution et programmation à mémoire partagée

  • Leçon 1 • Opérations atomiques et modèles mémoire

    Explique les opérations atomiques matérielles, la comparaison-échange 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 la portée des verrous pour protéger l'état partagé. Aborde directement les risques de situation de compétition introduits au chapitre 1.

  • Leçon 3 • Notions fondamentales sur les fils d'exécution

    Couvre la création, la jonction et le détachement de fils d'exécution à l'aide d'API de type POSIX. Ancre les étudiants dans le modèle d'exécution avant d'introduire la synchronisation.

  • Leçon 4 • Variables conditionnelles et barrières

    Introduit les variables conditionnelles pour la coordination producteur-consommateur et les barrières pour la synchronisation en masse. Étend le verrouillage à la coordination de fils d'exécution basée sur des événements.

  • Leçon 5 • Pools de fils d'exécution et files de travail

    Couvre la conception de pools de fils d'exécution pour amortir la surcharge de création et équilibrer la charge. Établit un lien entre les API de fils d'exécution brutes et les cadriciels de tâches de plus haut niveau présentés 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. Empêche les situations de compétition sans verrouillage manuel.

  • Leçon 2 • Boucles parallèles et répartition du travail

    Couvre les constructions parallel-for, sections et single pour distribuer les itérations de boucle. Applique directement le modèle de parallélisme 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 utiliseront pour toutes les constructions OpenMP.

  • Leçon 5 • Parallélisme de tâche OpenMP

    Introduit les directives task et taskwait pour le parallélisme irrégulier et récursif. Étend le partage du travail à des 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

    Couvre le modèle de programmation SPMD, les communicateurs et l'identification des rangs. É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 qui sous-tendent tous les patrons de plus haut niveau.

  • Leçon 3 • Opérations de communication collective

    Couvre les opérations collectives broadcast, scatter, gather, reduce et all-to-all. Remplace les patrons point à point manuels par des appels de bibliothèque optimisés.

  • Leçon 4 • Rendement et évolutivité 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 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

    Couvre les flux de travail d'optimisation basés sur le profileur et les patrons de bogues GPU courants. Équipe les étudiants pour diagnostiquer et corriger les problèmes de rendement et d'exactitude.

  • Leçon 2 • Hiérarchie mémoire CUDA

    Couvre la mémoire globale, partagée, constante et les registres avec les motifs d'accès. Une utilisation efficace de la mémoire est le principal levier pour le rendement du GPU.

  • Leçon 3 • Techniques d'optimisation des noyaux

    Enseigne l'accès coalescé à la mémoire, 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 fils d'exécution et le modèle d'exécution SIMT. Établit un lien entre le matériel GPU du chapitre 1 et l'abstraction logicielle CUDA.

  • Leçon 5 • Flux et concurrence CUDA

    Introduit les flux, 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 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, des files 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 à forte concurrence.

  • Leçon 2 • Algorithmes de graphes parallèles

    Couvre le BFS, le SSSP et les composantes connexes à l'aide de cadriciels de graphes parallèles. Applique la communication collective et le parallélisme de tâche à des charges de travail irrégulières.

  • Leçon 3 • Analyse du travail et de l'envergure

    Introduit le modèle travail-envergure, le taux 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 balayage

    Couvre les algorithmes de balayage inclusif et exclusif et leurs applications. Le balayage 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 à l'exécution parallèle. S'appuie sur les primitives de balayage et l'analyse travail-envergure des sections précédentes.

Chapitre 7Voir les détails

Analyse et optimisation du rendement

  • Leçon 1 • Profilage d'applications parallèles

    Couvre les compteurs de rendement matériel, les profileurs par é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 noyaux comme limités par le calcul ou par la mémoire. Guide les étudiants vers l'optimisation la plus percutante 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 sensible à la topologie pour les programmes MPI. Étend les concepts de rendement MPI du chapitre 4 avec des techniques d'optimisation.

  • Leçon 4 • Stratégies de répartition 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 l'évolutivité 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. Aborde directement les topologies de cache et NUMA introduites au chapitre 1.

Chapitre 8Voir les détails

Patrons 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 exigences, la sélection d'algorithmes et la validation du rendement pour une application parallèle complète. Synthétise toutes les compétences du cours.

  • Leçon 2 • Patrons 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 pipelinage du chapitre 1 aux programmes parallèles à plusieurs étages.

  • Leçon 3 • Programmation hybride MPI et OpenMP

    Conçoit des programmes hybrides combinant des rangs MPI avec des fils d'exécution OpenMP par nœud. Intègre les chapitres 3 et 4 dans une stratégie de parallélisme multiniveau 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

    Couvre les calculs de stencil tuilés et les opérations matricielles parallèles utilisant une décomposition de type BLAS. Applique le blocage de cache et les noyaux GPU à des charges de travail numériques.

Certification

Votre certificat valide de réussite

Ce cours est pour vous :

  • Ingénieurs et ingénieures en logiciels cherchant à tirer plus de vitesse de bases de code existantes.

  • Étudiants et étudiantes 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 et développeuses de jeux souhaitant exploiter pleinement les CPU multicœurs et le matériel GPU.

  • Chercheurs et chercheuses menant des simulations qui doivent passer à l'échelle au-delà d'une seule machine.

  • Ingénieurs et ingénieures backend faisant la transition vers des rôles de systèmes ou de performance d'infrastructure.

Ce que nos apprenants disent

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 à 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 Numérique
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 il est présenté ainsi que la transcription des vidéos, 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 au Canada ?

Les cours sont-ils gratuits?

Quelle est la charge de travail des 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 fonctionne?

Cours PDF