Semestre 4 · une option, et le calcul parallèle pour tous¶
Le semestre 4 est le plus simple à arbitrer du cursus, pour une raison inattendue : le meilleur contenu HPC du semestre n'est pas une option, il est dans le tronc commun.
La bonne nouvelle : ICPA24 est obligatoire¶
Fait. L'UE INFO24 (10 ECTS, responsable BUREL Guillaume) du tronc commun du semestre 4 contient quatre modules :
| Module | Intitulé |
|---|---|
| INAR24 | Intelligence artificielle |
| ECPI24 | Étude de cas — projet informatique |
| SECU24 | Sécurité des SI — aspects défensifs et offensifs |
| ICPA24 | Introduction au calcul parallèle |
Tout apprenti suit ICPA24, sans choix à faire et sans accord d'entreprise à demander.
Fait, contenu cité :
- Généralités autour du calcul parallèle (contexte, architecture, modèles de programmation parallèle)
- Parallélisme à base de threads
- Programmation parallèle en mémoire partagée (intra-nœud) : OpenMP
- Programmation parallèle par échange de messages : MPI (si le temps le permet, sinon une brève introduction)
Découpage : 10 séances de cours/TP intégrés et 2 séances de TP noté, soit 21 heures. L'évaluation est un TP noté.
Ce qu'ICPA24 est, et ce qu'il n'est pas
Vingt-et-une heures pour couvrir le contexte, les threads, OpenMP et MPI : c'est une introduction, et la brochure l'assume en écrivant que MPI passera « si le temps le permet ».
Ce que vous en retirerez : le vocabulaire, le modèle mental du parallélisme, et une première pratique d'OpenMP.
Ce que vous n'en retirerez pas : la performance. Rien dans le contenu cité ne porte sur le faux partage, la règle de la première touche, la saturation de bande passante ou la mesure — c'est-à-dire sur les cinq causes qui font qu'une parallélisation ne donne rien. Elles sont dans OpenMP et threads.
La bonne manière d'aborder ce module : arriver en ayant déjà fait P1, le produit matriciel mesuré, et utiliser les dix séances pour poser à l'enseignant les questions de performance que le programme n'aborde pas.
L'option : PRCV24, ou rien¶
Fait. « Avec l'accord de son entreprise, un apprenant peut choisir une UE » parmi quatre :
| UE | Créneau | ECTS | Intérêt HPC |
|---|---|---|---|
| PRCV24 · Programmation concurrente et vérification | Lundi, début de semestre | 4 | Élevé |
| MOST24 · Modélisation statistique | Lundi, début de semestre | 4 | Faible |
| GADE24 · Développement de jeux vidéo 2 | Lundi, début de semestre | 4 | Nul |
| CAST24 · Calcul stochastique | Lundi, fin de semestre | 4 | Nul |
Pour un objectif HPC, il n'y a pas d'arbitrage : c'est PRCV24, ou ne pas prendre d'option.
Ce que contient PRCV24¶
Fait. Quatre ECTS, responsable BUREL Guillaume, effectif 32. Prérequis : « Programmation impérative ; Introduction au Système d'Exploitation ; Langages et systèmes formels. » Deux modules.
| Module | Découpage | Contenu cité |
|---|---|---|
| COMC24 · Concepts et model checking | 6 cours, 3 TD, 2 TP, 1 examen | Activités concurrentes, variables partagées, sections critiques, interblocages, sémaphores, apprentissage d'un environnement de vérification exhaustive |
| MPPT24 · Modèle programmation Pthread | 4 cours, 8 TP | API POSIX ; conception de bibliothèques de threads utilisateur ; outils de débogage et de profilage ; techniques de débogage multithread ; mini-projet « autour d'une bibliothèque de threads utilisateur » |
La bibliographie citée pour MPPT24 est celle des tutoriels Pthreads du Lawrence Livermore National Laboratory.
Pourquoi MPPT24 vaut le semestre à lui seul
« Conception de bibliothèques de threads utilisateur. » Écrire son propre
ordonnanceur de threads légers — allocation de piles, changement de
contexte, yield, join — change définitivement la compréhension qu'on a
du parallélisme.
Et le résultat est mesurable : un changement de contexte en espace utilisateur coûte quelques dizaines à quelques centaines de nanosecondes, contre plusieurs microsecondes pour créer un thread noyau. Ce facteur explique à lui seul l'existence de tout l'écosystème des runtimes de tâches — OpenMP tasks, StarPU, Cilk, TBB, Argobots.
C'est le projet P10 de ce document, et il est ici encadré et noté.
Le module COMC24 comble un manque réel
La vérification formelle de programmes concurrents — sections critiques, interblocages, model checking — n'apparaît nulle part ailleurs dans le cursus. Et c'est précisément le domaine où l'intuition est fausse : un programme concurrent qui passe mille tests peut être incorrect.
Le complément technique, côté outillage plutôt que théorie, est dans
OpenMP et threads : ThreadSanitizer,
Helgrind, Archer, et pourquoi volatile ne synchronise rien.
Le piège des prérequis¶
Fait. PRCV24 demande « Langages et systèmes formels ». Il s'agit de LASF24, qui est un module de l'UE MATH24… du même semestre 4.
Vous suivrez donc les deux en parallèle. Ce n'est pas bloquant — la partie model checking arrive après les premières séances — mais cela vaut d'être anticipé, surtout si la logique n'est pas votre terrain naturel.
Ce que le semestre 4 ne donne pas¶
C'est ici qu'apparaît le premier grand manque du cursus FISA pour un objectif HPC, et il faut le nommer.
| Sujet | État dans le cursus FISA |
|---|---|
| Administration de cluster, Slurm, déploiement | Absent |
| Systèmes de fichiers parallèles (Lustre, GPFS) | Absent |
| Programmation scientifique, chaîne de simulation | Absent |
| Optimisation de codes de production, profilage applicatif | Absent au S4 ; partiellement au S5 avec PDSP35 |
Le manque le plus lourd : l'infrastructure
Aucune UE du cursus FISA n'enseigne à construire et exploiter un cluster : ni Slurm, ni le déploiement automatisé, ni le stockage parallèle.
Or c'est la compétence centrale d'une Student Cluster Competition et l'un des métiers principaux du domaine.
Deux compensations, et elles sont sérieuses.
1. DEVO35, au tronc commun du semestre 5. Docker, Kubernetes, intégration et déploiement continus avec GitLab CI, ordonnancement de tâches distribuées avec Airflow. Ce n'est pas Slurm, mais c'est l'infrastructure as code, et les réflexes se transposent.
2. Le projet P7 · le cluster maison. Trente-cinq heures, réalisable sur quatre machines virtuelles ou quelques cartes à faible consommation, et il couvre exactement ce que l'UE manquante aurait couvert : déploiement, Slurm, pile logicielle, surveillance, HPL.
Pour un apprenti, c'est aussi le meilleur candidat à un projet d'entreprise : monter un petit cluster de calcul interne est une demande fréquente et un livrable visible.
La décision, résumée¶
Recommandation
Prendre PRCV24 si l'entreprise l'accepte. C'est la seule option HPC du semestre, elle contient le mini-projet de bibliothèque de threads, et elle comble le manque de vérification formelle.
Si l'entreprise refuse, la perte est plus limitée qu'au semestre 3 : ICPA24 vous donne déjà les threads et OpenMP dans le tronc commun. Le programme de substitution tient en deux lignes :
- OpenMP et threads — 25 h ;
- P10 · la bibliothèque de threads utilisateur — 15 h, qui est le mini-projet de MPPT24 fait seul.
Dans tous les cas, le semestre 4 est celui où lancer le projet de cluster, parce qu'il compense le manque le plus lourd de la maquette et qu'il se présente bien à une entreprise.
À retenir¶
Le semestre 4 en quatre phrases
ICPA24, Introduction au calcul parallèle, est dans le tronc commun : tout le monde l'a, sans négociation. Vingt-et-une heures, threads, OpenMP, et MPI si le temps le permet.
La seule option HPC est PRCV24, et elle vaut le déplacement pour son module Pthread : conception d'une bibliothèque de threads utilisateur, mini-projet inclus.
Le cursus FISA n'enseigne ni l'administration de cluster, ni les systèmes de fichiers parallèles, ni la programmation scientifique. C'est le manque structurel à compenser.
La compensation passe par DEVO35 au S5, par le projet de cluster maison, et surtout par l'entreprise — qui est le seul endroit où un apprenti touche une infrastructure réelle.
Chapitre suivant : Semestre 5 · trois UE, et le triplet HPC.