Aller au contenu

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, un Makefile, 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.