Durée
30h Th, 15h Pr, 20h Proj.
Nombre de crédits
Enseignant
Langue(s) de l'unité d'enseignement
Langue anglaise
Organisation et évaluation
Enseignement au premier quadrimestre, examen en janvier
Horaire
Unités d'enseignement prérequises et corequises
Les unités prérequises ou corequises sont présentées au sein de chaque programme
Contenus de l'unité d'enseignement
Description du cours :
Ce cours aborde les méthodes de calcul scientifique haute performance, à la fois du point de vue théorique et du point de vue de l'implémentation pratique sur CPU et GPU.
Table des matières :
Introduction au calcul scientique haute performance, architecture des ordinateurs parallèles, latence et bande passante, localité spatiale et temporelle, loi d'Amdahl, scalabilité forte et faible, programmation pour mémoire distribuée avec MPI, programmation pour mémoire partagée avec OpenMP, programmation sur GPU avec CUDA.
Le cours utilise le langage de programmation C pour l'implémentation des algorithmes, en série et en parallèle. Les travaux pratiques couvrent l'utilisation de machines de calcul parallèle (systèmes UNIX, connection à distance, ligne de commande, système de gestion de queue, système de contrôle de version Git) et la parallélisation d'algorithmes via MPI et OpenMP.
Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement
A l'issue du cours les étudiants auront étudié différents algorithmes avancés de calcul scientifique intensif. Ils auront appris les bases de leur implémentation efficace sur des ordinateurs série et parallèle, et seront familiers avec les paradigmes de programmation sur architectures multicoeurs à mémoire partagée, sur architectures à mémoire distribuées, et sur GPU.
Ce cours contribue aux acquis d'apprentissage I.1, I.2, II.1, II.2, II.3, III.1, III.2, III.3, IV.1, VI.1, VI.2, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5 du programme d'ingénieur civil en aérospatiale.
Ce cours contribue aux acquis d'apprentissage I.1, I.2, II.1, II.2, II.3, III.1, III.2, III.3, IV.1, VI.1, VI.2, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5 du programme d'ingénieur civil en génie biomédical.
Ce cours contribue aux acquis d'apprentissage I.1, I.2, I.3, II.1, II.2, II.3, III.1, III.2, III.3, IV.1, VI.1, VI.2, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5 du programme d'ingénieur civil en science des données.
Ce cours contribue aux acquis d'apprentissage I.1, I.2, II.1, II.2, II.3, III.1, III.2, III.3, IV.1, VI.1, VI.2, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5 du programme d'ingénieur civil électricien.
Ce cours contribue aux acquis d'apprentissage I.1, I.2, II.1, II.2, II.3, III.1, III.2, III.3, IV.1, IV.3, VI.1, VI.2, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5 du programme d'ingénieur civil en informatique.
Ce cours contribue aux acquis d'apprentissage I.1, I.2, II.1, II.2, II.3, III.1, III.2, III.3, III.3, IV.1, VI.1, VI.2, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5 du programme d'ingénieur civil physicien.
Savoirs et compétences prérequis
MATH0006 (Introduction to numerical analysis), MATH0504 (Applied mathematics) et INFO2009 (Introduction à l'informatique).
Activités d'apprentissage prévues et méthodes d'enseignement
Cours théoriques et projet de programmation. Le projet est assigné au début du quadrimestre et est évalué lors de l'examen.
Mode d'enseignement (présentiel, à distance, hybride)
Cours donné exclusivement en présentiel
Informations complémentaires:
Présentiel. Voir la site web du cours pour les dernières informations.
Supports de cours, lectures obligatoires ou recommandées
Cf. le site web du cours.
Modalités d'évaluation et critères
Examen(s) en session
Toutes sessions confondues
- En présentiel
évaluation écrite
Evaluation continue
Stage(s)
Remarques organisationnelles et modifications principales apportées au cours
Ce cours est enseigné en anglais.
Contacts
C. Geuzaine (cgeuzaine at uliege.be), D. Colignon (david.colignon at uliege.be) et O. Louant (orian.louant at uliege.be).