Programme (contenu détaillé) :
HPC
– Calcul de valeurs propres pour des grands systèmes (2 CM, 1 TP)
– Architecture des machines : unités de calcul et typologie (CPU, GPU et autres), hiérarchie de la mémoire cache, réseaux d¿interconnexion, principes de localité spatiale et temporelle, vectorisation, etc …
– Parallélisation : degrés de parallélisme (loi d’Amdahl, scalabilité, etc.), paradigme à mémoire partagé avec OpenMP, paradigme à mémoire distribuée avec MPI, principes de réduction, de data race, etc …
(4 CM, 3 TP)
Outils et méthodes informatiques
– Outils et méthodes de développement informatique : projet souhaitablement interdisciplinaire mettant en œuvre une logique de gestion de projet informatique : méthodes et outils de gestion de projet agile, méthodes et outils de génie logiciel (conception et production orientée objet, algorithmique avancée), outils collaboratifs, outils d’aide à la programmation, outils d’intégration continue. L’acquisition des connaissances nécessaires à la mise en œuvre des outils et méthodes se fera en autoformation à travers une série de micromodules fournis (méthode agile, Monday, Teams, Trello, GitLab, Linter, Mattermost, Jira, etc.).
(1TP, 1 projet tutoré)
Objectifs
A la fin de ce module, l'étudiant.e devra avoir compris et pourra expliquer (principaux concepts) :
- Concepts généraux de gestion de projet et de développement informatique collaboratif
- Concepts généraux du calcul haute performance avec techniques de parallélisation.
- L'approximation de Galerkin d'un problème aux valeurs propres, les espaces de Krylov et la procédé d'Arnoldi
L'étudiant.e devra être capable de :
- Structurer un projet de développement informatique selon ses principales dimensions et une méthode agile : organisation et comitologie, dimensionnement, planification, sprints et jalons principaux, chaîne d¿outils de développement collaboratif et d'intégration continue, communication, documentation
- Connaitre le vocabulaire du calcul haute performance et de connaitre les éléments de base de la parallélisation.
- Mettre en œuvre la méthode d'Arnoldi pour le calcul de valeurs propres extrêmes d'une matrice
Pré-requis
- Langages de programmation C et Python.
- Méthode de Krylov : Méthode de la puissance et méthode QR (2A)
- Informatique : algorithmique de base, langages de programmation
Évaluation
L’évaluation des acquis d’apprentissage est réalisée en continu tout le long du semestre. En fonction des enseignements, elle peut prendre différentes formes : examen écrit, oral, compte-rendu, rapport écrit, évaluation par les pairs…