Nous examinerons quelques principes d’architecture des ordinateurs et comment ce «bas niveau» structure la pensée algorithmique. Nous aborderons en particulier les questions suivantes :
Comment l’information est-elle représentée et manipulée ?
Comment sont définies les instructions élémentaires d’un processeur ?
Pourquoi est-il raisonnable de séparer l’algorithmique, la programmation et l’architecture ?
Pourquoi n’analyser la complexité d’un algorithme qu’à un O() près ?
Cela nous amènera à discuter, à partir d’expérience simples, de la hiérarchie mémoire, du pipeline, de la prédiction de branchement, de la vectorisation,…
Animateur : Pierre-Etienne MOREAU, Professeur (Pierre-Etienne.Moreau@univ-lorraine.fr)
Sous forme d’apports théoriques, d’échanges, d’analyse de code et d’expérimentations pratiques nous aborderons les thèmes suivants :
Comprendre la différence entre le tas et la pile
Notions de référence et mutabilité
Comprendre le fonctionnement d’une table de hachage
Gestion de la mémoire : stratégies de ramasse miettes
Analyse des principaux choix d’implantation faits dans l'interpréteur Python
Supports
Pile, tas, références et mutabilité, gestion de la mémoire : support
Notes sur le GC de Python :
Choix d'implantation de Python
les entiers des -5 à +256 sont préalloués
https://github.com/python/cpython/blob/main/Objects/longobject.c
https://github.com/python/cpython/blob/main/Objects/longobject.c#L55
Nous présentons la méthode de Boltzmann sur réseau (LBM: “Lattice Boltzmann Method”) et son implémentation pour simuler l’écoulement d’un fluide. La présentation illustre et s’appuie sur un cours donné à l’École en tandem entre un informaticien et un mécanicien des fluides.
Description physique du problème, hypothèses de travail
Résolution des équations de Navier-Stokes par LBM
Construction du modèle
Implémentation
Présentation des résultats