Aller au contenu

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é :

  1. Généralités autour du calcul parallèle (contexte, architecture, modèles de programmation parallèle)
  2. Parallélisme à base de threads
  3. Programmation parallèle en mémoire partagée (intra-nœud) : OpenMP
  4. 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 :

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.