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 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.

Dedika pour entreprises

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.

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

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

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

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

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

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

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.

Certification

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...
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 au Cameroun ?

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