Le socle de première année¶
Aucun choix à faire en première année : les deux semestres sont entièrement en tronc commun. Cette page dit lesquels de ces modules conditionnent la suite, et ce qu'il faut en retirer au-delà de ce que l'évaluation exige.
La première année est annoncée comme provisoire
Fait. La brochure écrit : « La première année est en cours de modification. Cette brochure sera mise à jour une fois les modifications actées. »
Tout ce qui suit est donc à reconfirmer sur la brochure de votre année.
Ce que contient la première année¶
Fait.
Semestre 1¶
| UE | ECTS | Modules |
|---|---|---|
| INFO11 | 8 | MEIM11 Mémoire impérative · SYEX11 Système d'exploitation · BAWE11 Bases du web · MOOB11 Modélisation objet |
| MATH11 | 6 | ALGE11 Algèbre · ANAL11 Analyse 1 · PROB11 Probabilité · MOMA11 Modélisation mathématique |
| MISS11 | 10 | Le travail en entreprise |
| SCIN11 | 6 | Anglais, droit de l'informatique, management, marketing |
Semestre 2¶
| UE | ECTS | Modules |
|---|---|---|
| INFO12 | 10 | PSSI12 Sécurité SI · PRFO12 Programmation fonctionnelle · PRIN12 Projet informatique · RESE12 Réseaux · STDO12 Structures de données · BDWA12 Bases de données et web avancé |
| MATH12 | 5 | LOMA12 Logique · STAT12 Statistique inférentielle · THAG12 Théorie des graphes · ANAL12 Analyse 2 |
| MISS12 | 10 | Le travail en entreprise |
| SCIN12 | 5 | Anglais, expression, communication en entreprise |
Les quatre modules qui conditionnent tout le reste¶
MEIM11 · Mémoire impérative — le plus important¶
Fait. Le module « enseigne les bases de la programmation impérative et de la gestion de la mémoire par les langages impératifs (au travers du langage C et du langage Java) ». Sa seconde partie porte spécifiquement sur la gestion de mémoire : « différence entre les adressages en C et en Java », « gestion de la mémoire avec des pointeurs ».
Découpage : 6 séances de cours, 2 de TD, 13 de TP, 2 de TP noté, 1 examen.
Pourquoi c'est le module le plus déterminant du cursus pour le HPC
Tout le calcul intensif est en C, C++ ou Fortran, et tout y est une question de mémoire.
Les prérequis le confirment : PRPA23 exige « Programmation C/C++ nécessaire », PGPU35 exige « C/C++ », COAV35 exige « Programmation informatique (type C/C++) », PDSP35 exige « Programmation Système, C ». Quatre des cinq UE HPC du cursus ont le C pour prérequis.
Un apprenti qui sort de MEIM11 en sachant « à peu près » manipuler des pointeurs aura des difficultés dans les quatre. Un apprenti qui en sort en sachant exactement ce qu'est une adresse, ce que coûte un déréférencement et comment un tableau est disposé en mémoire aura deux ans d'avance.
Ce qu'il faut en retirer au-delà du programme :
- savoir dessiner l'état de la mémoire pendant l'exécution d'un programme — pile, tas, variables globales ;
- comprendre qu'un tableau à deux dimensions en C est stocké en lignes, et que parcourir une colonne coûte beaucoup plus cher que parcourir une ligne. C'est la première notion de localité, et elle explique la moitié des questions de performance du reste du cursus ;
- savoir compiler à la main :
gcc -O2 -Wall -Wextra, unMakefile, et comprendre l'édition de liens.
SYEX11 · Système d'exploitation¶
Le second module d'INFO11. C'est le prérequis nommé de PRCV24 — « Introduction au Système d'Exploitation » — et le socle sur lequel ARSE23 construirait tout son contenu si vous la choisissez.
Ce qu'il faut en retirer : processus et threads, appels système, le rôle de l'ordonnanceur, et l'aisance en ligne de commande. Tout le HPC se fait sur Linux, en shell, à distance.
STDO12 · Structures de données¶
Ce qu'il faut en retirer, et que le cours ne dira probablement pas : en calcul intensif, la structure de données la plus rapide est presque toujours le tableau contigu.
Les listes chaînées, les arbres de pointeurs et les tables de hachage ont d'excellentes complexités asymptotiques et de mauvaises performances réelles, parce que chaque déréférencement est un défaut de cache potentiel. Un parcours séquentiel de tableau peut être dix fois plus rapide qu'un parcours de liste chaînée contenant les mêmes données.
Ce n'est pas une critique du cours — la complexité algorithmique reste fondamentale — mais c'est la nuance que le HPC ajoute, et elle est développée dans Architecture et mémoire.
ALGE11 et ANAL11 · Algèbre et Analyse¶
L'algèbre linéaire est la matière première du calcul intensif. Les deux benchmarks qui classent les supercalculateurs du monde — HPL et HPCG — résolvent des systèmes linéaires, et rien d'autre.
Ce qu'il faut solidifier : produit matriciel, systèmes linéaires, factorisations, valeurs propres, et la notion de conditionnement. C'est le prérequis du chapitre Solveurs et algèbre linéaire, qui est le plus exigeant du socle.
Ce que la première année ne donne pas¶
| Manque | Conséquence | À combler |
|---|---|---|
| Aucune notion de performance ni de mesure | Vous arriverez en 2A sans savoir chronométrer correctement | P4 · le carnet de mesures, 8 h |
| Aucune notion d'architecture matérielle | Cache, NUMA, SIMD ne seront jamais introduits, sauf si vous prenez ARSE23 | Architecture et mémoire |
| Le C est partagé avec Java | Moins de pratique du C pur qu'il n'en faudrait pour quatre UE qui l'exigent | Écrire du C en dehors des TP |
Le programme de l'été avant la deuxième année¶
C'est la meilleure fenêtre du cursus : aucun cours, et le rythme d'alternance laisse des périodes exploitables.
Cinquante-cinq heures qui changent les deux années suivantes
| Travail | ⏱ | Ce que ça apporte |
|---|---|---|
| P1 · Le produit matriciel, du naïf à OpenBLAS | 15 h | L'exercice initiatique : cache, blocage, vectorisation, et l'humilité face aux bibliothèques |
| P2 · La caractérisation d'une machine | 12 h | Savoir ce qu'une machine peut faire avant de mesurer ce que votre code fait |
| P4 · Le chronomètre et le carnet | 8 h | L'outillage que vous utiliserez pendant trois ans |
| Modèles de performance | 20 h | Le roofline, Amdahl, Gustafson — le langage commun du domaine |
Tout tient sur un ordinateur portable. Aucun accès cluster n'est nécessaire.
Le retour sur investissement : vous arriverez à ICPA24 et à PRPA23 en sachant déjà mesurer, avec des anomalies constatées sur votre propre code. C'est la différence entre suivre un cours et l'exploiter.
À retenir¶
La première année en quatre phrases
Aucun choix à faire, et la brochure annonce que l'année est en cours de modification.
MEIM11 est le module le plus déterminant du cursus : quatre des cinq UE HPC ont le C pour prérequis. Ce qu'on n'y acquiert pas se paiera pendant deux ans.
La première année ne parle jamais de performance ni d'architecture matérielle — c'est normal, et c'est ce que l'été suivant doit combler.
L'été avant la deuxième année est la meilleure fenêtre du cursus : cinquante-cinq heures, sur un portable, qui changent tout ce que vous retirerez ensuite des UE.
Chapitre suivant : Semestre 3 · vue d'ensemble.