Aller au contenu

Semestre 3 · une option, trois candidates

Fait. Au semestre 3, « avec l'accord de son entreprise, un apprenant peut choisir une UE » parmi sept. Une seule. Et elle est facultative.

Trois des sept sont pertinentes pour un objectif HPC. Ce chapitre les compare et tranche.


Le tableau de départ

UE Créneau ECTS Responsable Effectif Intérêt HPC
PRPA23 · Programmation parallèle distribuée Mardi après-midi 4 JAEGER Julien 30 Maximal
ARSE23 · Architecture d'un système d'exploitation Lundi après-midi 4 WIBER Gilles 30 Élevé
ASCO23 · Assembleur et compilation Lundi matin 4 BUREL Guillaume 62 Moyen
PRFO23 · Programmation fonctionnelle Mardi après-midi 4 FOREST Julien — Faible
MERR23 · Méthodes de régression régularisée Lundi matin 4 MOUGEOT Mathilde — Faible
PRST23 · Processus stochastiques Mardi après-midi 4 SAGNA Abass — Faible
GADE23 · Développement de jeux vidéo 1 Lundi matin 4 FORTAT Florent — Nul

Les créneaux ne créent aucune contrainte ici : comme on ne prend qu'une UE, le fait que PRPA23, PRFO23 et PRST23 partagent le mardi après-midi est sans conséquence. La seule contrainte est le nombre : une.


Décision préalable · faut-il prendre une option ?

L'option est facultative. La question mérite d'être posée franchement, parce qu'un apprenti a déjà trente ECTS de tronc commun et une entreprise à servir.

Recommandation · oui, si l'objectif est le HPC

Le semestre 3 est le seul moment du cursus où l'on peut suivre un cours de programmation parallèle distribuée. Il n'y a pas de rattrapage possible plus tard : aucune UE des semestres suivants ne reprend MPI.

Le coût est d'une demi-journée par semaine pendant un semestre. Le bénéfice est la seule formation encadrée à MPI de tout le cursus.

Si l'entreprise refuse, la section finale de ce chapitre donne le programme de substitution.


PRPA23 · programmation parallèle distribuée

La recommandation de ce document.

Fait. Quatre ECTS, prérequis « Programmation C/C++ nécessaire », effectif 30. Deux modules, 42 heures au total.

Module Découpage Contenu cité
IMPI23 · Introduction à MPI 4 cours, 7 TP, 1 examen API MPI ; communications point à point ; collectives ; collectives avancées ; types dérivés
PMPI23 · Programmation MPI avancée 4 cours, 7 TP, 1 examen MPI-IO ; communications unidirectionnelles (RMA) ; réseaux rapides ; topologies réseau ; astuces pour un programme MPI efficace

Les quatre raisons de la prendre

1. C'est la seule fois où vous verrez MPI. Le tronc commun du semestre 4 contient bien ICPA24, Introduction au calcul parallèle, mais sa fiche précise que MPI y sera traité « si le temps le permet, sinon une brève introduction ». Le seul enseignement sérieux de MPI du cursus FISA est ici.

2. Le second module est d'une densité inhabituelle. MPI-IO, les RMA, les réseaux rapides et les topologies sont des sujets qui, dans la formation sous statut étudiant, sont répartis sur deux UE distinctes. Ils sont ici condensés en un demi-semestre.

3. Elle ouvre PGPU35. La fiche de PGPU35, au semestre 5, donne comme prérequis « Programmation Parallèle » et « C/C++ ». PRPA23 les satisfait sans ambiguïté.

4. Elle utilise les moyens de l'école. Quatorze séances de travaux pratiques sur des machines que vous n'avez pas chez vous. C'est l'argument décisif face à ARSE23, développé ci-dessous.


ARSE23 · architecture d'un système d'exploitation

Le concurrent sérieux, et le choix défendable.

Fait. Quatre ECTS, aucun prérequis, effectif 30, 14 séances de cours et 10 de TP. Seconde session : non rattrapable.

L'objectif cité est explicite sur son orientation : « Cette UE présente les éléments d'un système d'exploitation en détaillant les composants critiques pour un système HPC. » Le contenu couvre la pagination et les huge pages en contexte HPC, l'allocation parallèle en contexte NUMA, l'ordonnancement avec mise en œuvre dans une bibliothèque de threads utilisateur, les systèmes de fichiers locaux, le débogage système et les systèmes allégés (McKernel, mOS).

C'est de l'excellent contenu, directement utile, et le seul endroit du cursus où l'on parle de NUMA et de huge pages.

Pourquoi ce document recommande malgré tout PRPA23

L'argument n'est pas que le contenu d'ARSE23 vaut moins. C'est un argument de substituabilité :

MPI (PRPA23) Systèmes (ARSE23)
Matériel nécessaire pour s'entraîner seul Plusieurs nœuds pour que les mesures aient un sens Un portable ou une machine virtuelle suffisent
Qualité du matériel d'auto-formation Excellente — les supports MPI de l'IDRIS, en français et gratuits Excellente — Drepper, OSTEP, Kerrisk
Peut-on le pratiquer seul de façon crédible ? Correction oui, performance non Oui, entièrement

Les deux se lisent très bien tout seul. Mais seul ARSE23 se pratique très bien tout seul. Prenez donc celui dont les travaux pratiques vous apportent quelque chose que vous ne pouvez pas obtenir chez vous, et rattrapez l'autre avec Architecture et mémoire, qui est écrit exactement pour cela.

Et le contre-argument, qui est réel

Si votre entreprise vous donne déjà un accès régulier à un cluster — c'est le cas dans les sociétés de calcul, chez les éditeurs de simulation, dans certains services d'infrastructure — alors l'argument s'inverse. Vous pratiquerez MPI au travail, et ARSE23 devient le meilleur usage de votre demi-journée d'école.

C'est la première question à se poser avant de trancher : de quelles machines vais-je disposer dans les douze prochains mois ?


ASCO23 · assembleur et compilation

Fait. Quatre ECTS, prérequis programmation impérative et fonctionnelle, effectif 62 — le plus large des trois. Dix séances de cours, six de TD, six de TP, deux examens.

Le contenu est un cours de compilation classique : langage assembleur RISC-V, architecture d'un compilateur, analyse syntaxique avec lex et yacc, analyse sémantique, sélection d'instructions, graphe de flot de contrôle, conventions d'appel.

Pourquoi il arrive troisième pour un objectif HPC

Il n'est pas prérequis de COAV35. On pourrait le croire, puisque COAV35 Compilation avancée est la suite naturelle. Fait : la fiche de COAV35 ne demande que « Programmation informatique (type C/C++) ». ASCO23 n'est pas exigé.

L'assembleur enseigné est RISC-V. C'est un excellent choix pédagogique — le jeu d'instructions est propre et se comprend en une semaine — mais ce n'est pas celui que vous lirez en profilant un code de production, qui sera du x86-64 ou de l'ARM. La transposition est facile mais elle reste à faire.

La partie « analyse syntaxique » ne sert pas au HPC. Lex, yacc et les grammaires occupent une fraction notable du cours et ne servent à rien pour la performance. Ce qui sert — le flot de contrôle, les conventions d'appel, la sélection d'instructions — est la seconde moitié.

Quand ASCO23 devient le bon choix

Si votre projet professionnel est la compilation ou l'outillage de développement plutôt que le calcul, ASCO23 puis COAV35 au S5 forment une filière cohérente et rare. Ce document recommande PRPA23 pour un objectif HPC, pas dans l'absolu.


La décision, résumée

Recommandation

Prendre PRPA23, sauf si votre entreprise vous donne déjà accès à un cluster — auquel cas prendre ARSE23 et apprendre MPI par les supports de l'IDRIS.

Dans les deux cas, le chapitre du socle correspondant à l'UE que vous n'avez pas prise devient obligatoire :

Vous prenez Vous devez lire par vous-même
PRPA23 Architecture et mémoire — 35 h
ARSE23 MPI en profondeur — 25 h, et les supports MPI de l'IDRIS
ASCO23 Les deux

Comment obtenir l'accord de l'entreprise

La décision n'est pas la vôtre seule. Voici les arguments qui fonctionnent, formulés du point de vue de l'employeur.

Les trois arguments à présenter

Pour PRPA23 — « Cette UE porte sur le calcul distribué : découper un traitement sur plusieurs machines et le faire passer à l'échelle. Si nous avons des traitements longs, c'est directement applicable, et je peux proposer un cas d'usage interne comme support de projet. »

Pour ARSE23 — « Cette UE porte sur le réglage fin des systèmes Linux : mémoire, ordonnancement, systèmes de fichiers, débogage système. C'est de l'optimisation d'infrastructure, applicable à n'importe quel serveur de production. »

L'argument commun, et le plus efficace : proposer que le projet ou le TP noté de l'UE porte sur un cas réel de l'entreprise. L'école y gagne un sujet concret, l'entreprise y gagne un livrable, et vous y gagnez de ne plus avoir à arbitrer entre les deux.

Si l'entreprise refuse

Ce n'est pas rare, en particulier si la demi-journée tombe mal dans le rythme d'alternance. Le programme de substitution, à faire seul :

  1. Les supports MPI de l'IDRIS (idris.fr/formations/mpi/), gratuits, en français, avec exercices — le meilleur substitut existant. ⏱ 25 h.
  2. MPI en profondeur et Architecture et mémoire.
  3. P6 · le solveur de Poisson distribué, en mode dégradé sur un seul nœud avec sur-souscription, ce qui valide la correction sinon la performance.

Et gardez la demande pour le semestre 4 : un refus au S3 ne présume pas d'un refus au S4, surtout si vous revenez avec un livrable.


À retenir

Le semestre 3 en quatre phrases

Une seule option, facultative, soumise à l'accord de l'entreprise.

Trois candidates HPC : PRPA23 (MPI), ARSE23 (systèmes), ASCO23 (compilation). Les créneaux ne contraignent rien — seul le nombre contraint.

Recommandation : PRPA23, parce que c'est le seul enseignement de MPI du cursus et parce que ses quatorze TP utilisent des machines que vous n'avez pas chez vous. ARSE23 se rattrape seul ; MPI se rattrape mal.

Inversez la recommandation si votre entreprise vous donne un cluster : dans ce cas, pratiquez MPI au travail et prenez ARSE23 à l'école.

Chapitre suivant : Semestre 4 · une option, et le calcul parallèle pour tous.