Architectures et systèmes des plates-formes parallèles et distribuées
Présentation
L'objectif de ce cours est de faire un tour d'ensemble des techniques
matérielles et logicielles mises en oeuvre au sein des processeurs
hautes performances et des machines parallèles, afin d'en tirer parti
au maximum lors de l'écriture de programmes faisant un usage intensif
du processeur et de la mémoire.
Contenu
Introduction
-
Concepts de base du parallélisme
-
Nécessité du parallélisme
-
Domaines actuels de recherche en parallélisme
Modèles de calculateurs parallèles
-
Classification de Flynn
-
Classification de Raina
Architecture des processeurs
-
Horloge
-
Câblage
-
Mise en oeuvre du parallélisme au niveau des bits
-
Câblage d'un additionneur entier
-
Câblage d'un multiplicateur entier
-
Jeux d'instructions
-
Jeux d'instructions CISC, RISC, et CRISC
-
Influence sur la compilation et les performances
-
Pipe-lines
-
Principe
-
Pipe-lines linéaires
-
Pipe-lines non linéaires
-
Dépendances et bulles
-
Optimisation des branchements conditionnels
: déroulage de boucles, branchement retardé, prédiction de branchement
-
Parallélisme d'instructions
-
Superscalarité
-
Processeurs VLIW et LIW
-
Programmation efficace des processeurs superscalaires hautes performances
-
Processeurs vectoriels
-
Processeurs faiblement vectoriels
-
Hyperthreading et processeurs multi-coeurs
-
Évaluation des performances des processeurs
Architectures des mémoires
-
Hiérarchie mémoire et principes de localité
-
Registres
-
Mémoire cache
-
Mécanismes d'accès
-
Structure : correspondance directe, associativité
-
Cohérence sur les systèmes multi-processeurs : protocole MESI
-
Mémoire centrale : structure, programmation efficace
-
Disques
-
Fiabilité et performance
-
Systèmes RAID
-
Systèmes de fichiers parallèles
Systèmes d'exploitation pour le parallélisme
-
Typologie et structure
-
Fonctionnalité
-
Ordonnancement
-
Mémoire
-
Synchronisation
Pré-requis
Connaissances de base en logique booléenne et en arithmétique binaire
Connaissances de base en architecture des ordinateurs
Connaissances de base d'un langage de programmation impérative (type « C »)
Ressources disponibles
Cours connexes