Programmation avancée des architectures multicœurs

publicité
Introduction
Nouveaux appareils
Programmation avancée des
architectures multicœurs
! Informatique embarquée
PDAs, téléphone, voiture, satellites, avions, trains, cartes à puce…
Ressources contraintes
Besoins spécifiques : sécurité, économie d’énergie…
! Architectures multi-cœurs
Augmentation de la vitesse en augmentant le parallélisme
Gestion du placement, des caches
Gaël Thomas
[email protected]
Nouveaux comportements
! Informatique ubiquitaire
Environnement matériel changeant et hétérogène
! Informatique nomade
Université Paris-Saclay
Master Calcul Haute Performance et Simulation
Master 2
Bureau portable, masquage de la localisation
12/09/16
Architectures à Composants
Introduction
Introduction
Nouveaux appareils
Nouveaux appareils
! Informatique embarquée
! Informatique embarquée
PDAs, téléphone, voiture, satellites, avions, trains, cartes à puce…
Ressources contraintes
Besoins spécifiques : sécurité, économie d’énergie…
! Architectures multi-cœurs
PDAs, téléphone, voiture, satellites, avions, trains, cartes à puce…
Ressources contraintes
Besoins spécifiques : sécurité, économie d’énergie…
Besoin
d’extensibilité
! Architectures multi-cœurs
Augmentation de la vitesse en augmentant le parallélisme
Gestion du placement, des caches
Augmentation de la vitesse en augmentant le parallélisme
Gestion du placement, des caches
Nouveaux comportements
Nouveaux comportements
! Informatique ubiquitaire
! Informatique ubiquitaire
Environnement matériel changeant et hétérogène
Environnement matériel changeant et hétérogène
! Informatique nomade
! Informatique nomade
Bureau portable, masquage de la localisation
12/09/16
2
Architectures à Composants
Bureau portable, masquage de la localisation
3
12/09/16
Architectures à Composants
Besoin
de virtualisation
4
Introduction
Plan du cours
Nouveaux appareils
Étude de la virtualisation (2 semaines)
! Informatique embarquée
! Les moniteurs de machines virtuelles
! Les machines virtuelles applicatives
! Les ramasse-miettes
PDAs, téléphone, voiture, satellites, avions, trains, cartes à puce…
Ressources contraintes
Besoins spécifiques : sécurité, économie d’énergie…
! Architectures multi-cœurs
Étude de l’extensibilité dans le noyau Linux (2,5 semaines)
Besoin
de concurrence
Augmentation de la vitesse en augmentant le parallélisme
Gestion du placement, des caches
! Architecture du noyau Linux
! Construction de modules
Nouveaux comportements
Étude des multi-cœurs (2,5 semaines)
! Informatique ubiquitaire
! Architectures et contraintes des multi-cœurs
! Concurrence en mémoire partagée
! Algorithmes classiques sans verrous
! Mémoires transactionnelles logicielles
Environnement matériel changeant et hétérogène
! Informatique nomade
Bureau portable, masquage de la localisation
12/09/16
Architectures à Composants
5
Vue d’ensemble de l’évolution des systèmes
12/09/16
Architectures à Composants
6
Vue d’ensemble de l’évolution des systèmes
Noyau monolithiques
(Unix– voir M1)
Moniteurs de MV
(VM/370, Xen, VMWare...)
Emulateurs
(de vrai processeurs…)
Monolithiques extensibles
(Linux/Windows/Macos…)
Machines virtuelles
applicatives
(Java, .Net, Python…)
Ramasse-miettes
Noyau monolithiques
(Unix– voir M1)
Moniteurs de MV
(VM/370, Xen, VMWare...)
Emulateurs
(de vrai processeurs…)
Monolithiques extensibles
(Linux/Windows/Macos…)
Machines virtuelles
applicatives
(Java, .Net, Python…)
Ramasse-miettes
Compilateurs
Exo-noyaux
(Aegis)
Micro-noyaux
(Mach, L4)
OS pour Multicoeurs
(Barrelfish, Corey, TXLinux…)
Algorithmes sans verrou
(java.util.concurrent.*)
12/09/16
Compilateurs
OS à base de MV
(Singularity, KaffeOS,
Spin…)
OS
Exo-noyaux
(Aegis)
Compilation
Micro-noyaux
(Mach, L4)
OS pour Multicoeurs
(Barrelfish, Corey, TXLinux…)
Algorithmique répartie
Mémoires transactionnelles
(TinySTM, STM de Haskell…)
Architectures à Composants
OS à base de MV
(Singularity, KaffeOS,
Spin…)
Algorithmes sans verrou
(java.util.concurrent.*)
7
12/09/16
OS
Compilation
Algorithmique répartie
Mémoires transactionnelles
(TinySTM, STM de Haskell…)
Architectures à Composants
8
Modalité d’examens
Bibliographie
Machines virtuelles et ramasse-miettes
! Garbage Collection: algorithms for automatic dynamic memory management. R.
Jones, R. Lins. Wiley (1996).
Noyau Linux
! Le noyau linux. D. P. Bovet, M. Casata, J. Cornavi Oreilly (2001)
Un examen final sur 100%
Programmation multi-coeurs
! The Art Of Multiprocessor Programming. M. Herlihy, N. Shavit. Elsevier (2008)
Divers
! Bibliographie du module Noyau (M1)
! Conférences et revues en système : SOSP, OSDI, ASPLOS, USENIX, EUROSYS,
HOTOS, VEE, CACM, JACM, Computing Surveys, TOPLAS, SP&E, JPDC
12/09/16
Architectures à Composants
9
12/09/16
Architectures à Composants
10
Téléchargement