Algorithmique et programmation parallèle - 4MMAPP

Informations générales

  • Volumes horaires

    • CM 24.0
    • Projet -
    • TD -
    • Stage -
    • TP 24.0
    • DS -

    Crédits ECTS

    Crédits ECTS 4.0

Objectif(s)

Le but de ce cours est de présenter et faire manipuler les variantes
importantes de la programmation parallèle, et les notions
algorithmiques centrales dans cette programmation.

Responsable(s)

Gregory MOUNIE

Contenu(s)

Ce cours n'inclut pas la programmation des accélérateurs comme les GPU
(Cuda, OpenCL) qui est traité par un autre cours.

Quatre environnements seront utilisés :

  • *OpenMP* : niveaux d'intégration avec le compilateur et le runtime (vectorisation, FORALL, sections parallèles, tâches, dépendances entre tâches, partage de mémoire)
  • *MPI* : échange de messages et synchronisations (communications point-à-point, collectives, lectures/écritures directes à distance, synchrones/asynchrones)
  • **Channels (Go)** : patrons de synchronisation (sélection, OR, arbre divergeant, arbre convergeant, pipeline, T, séquence)
  • *Un Autre* : parmi Rust (Fold), Fortran (PGAS), C++ (async, task, futur, promise), Ada (tasks, gardes), Raku (Supplies), Haskell, Scala (Agent), Kokkos, Chapel, etc.

Prérequis

Programmation (C, Go)
Systèmes d'exploitation
Réseaux informatiques
C (compréhension de la gestion de la mémoire)
Go

Contrôle des connaissances

Evaluation : Examen sur machine (3h)

Rattrapage : Examen écrit (3h)

Documents autorisés (ex : aucun, résumé feuille A4 manuscrite, dictionnaires, tous documents) : none
Documents interdits (ex : livres, tous documents) : all
Matériel autorisé : none

Calendrier

Le cours est programmé dans ces filières :

cf. l'emploi du temps 2026/2027

Informations complémentaires

Code de l'enseignement : 4MMAPP
Langue(s) d'enseignement : FR

Le cours est rattaché aux structures d'enseignement suivantes :

  • Equipe Programmation-logiciel

Vous pouvez retrouver ce cours dans la liste de tous les cours.