Sites Inria

Conférence scientifique

Anais Aires - 2/07/2015

Luc Maranget (Gallium) - Modèles mémoire pour les multiprocesseurs à mémoire partagée

@Inria

La plupart des systèmes qui s'apparentent à des ordinateurs un tant soit peu sophistiqués comprennent plusieurs unités de calcul qui communiquent par l'intermédiaire d'une mémoire partagée.

La programmation de ces systèmes est notoirement difficile, en raison de l'explosion de l'espace des états possibles du système. Mais il existe une autre difficulté : ces systèmes ne suivent pas le modèle simple de fils d'exécution exécutant chacun à leur tour des instructions dans l'ordre du programme et agissant instantanément sur la mémoire commune. Cette situation résulte des optimisations matérielles, telles que l'exécution *out-of-order* et spéculative, ainsi que de la présence de tampons et de caches destinés à ne pas contraindre les cœurs d'exécution à avancer au rythme de la mémoire. Ces optimisations matérielles ne changent pas le modèle d'exécution séquentielle, mais deviennent visibles des programmes parallèles.

L'exposé portera sur la définition de modèles rigoureux et précis du comportement des machines multiprocesseurs, un préalable nécessaire pour l'écriture de compilateurs, d'outils d'analyse et d'idiome de programmation *lock-free* pour la programmation parallèle. Nous confrontons systématiquement nos modèles aux machines effectivement disponibles. Cette démarche aboutit à la proposition de modèles crédibles et expérimentalement vérifiés pour les machines à base de processeurs Intel x86, IBM Power et ARM. À l'occasion nous avons trouvé quelques bugs dans les implantations matérielles de ces architectures.

> Voir la conférence

Mots-clés : Demi-heure de science Multiprocesseurs Mémoire partagée Modèles mémoire Gallium

Haut de page

Suivez Inria