Dernière mise à jour des supports en 2012.

Thème

Ce cours est une composante du cours d'architecture INF 227 de Télécom ParisTech. Il propose une introduction aux principes de l'optimisation de code pour respecter la hiérarchie mémoire des ordinateurs actuels. Il montre comment un respect simple de la localité mémoire, par l'intermédiaire d'une simple réorganisation du code ou d'une technique de calculs par blocs, permet de gagner au moins un ordre de grandeur en performances sur des données volumineuses.

Public

Le cours est destiné à des étudiants avec de bonnes notions de programmation et d'architecture. Il s'appuie notamment sur une connaissance minimal des caches.

Supports

Les transparents sont disponibles ici.

Références

Ce cours a été préparé en utilisant le remarquable article sur le sujet écrit par Ulrich Drepper : « What Every Programmer Should Know About Memory ».

Le guide d'optimisation de code pour les architectures Intel « Intel 64 and IA-32 Architectures Optimization Reference Manual », disponible ici, est une mine d'informations sur ces techniques, mais le texte est assez aride.

Les différents articles décrivant la bibliothèque ATLAS constituent une bonne introduction aux techniques de calcul par blocs.