Um gerenciamento adequado da memória local ou da memória cache, associado a um código que faça uso mais intensivo de dados localizados, e portanto, passíveis de serem mantidos na memória local, favorece a melhoria de desempenho na medida em que provoca uma reutilização maior de dados que estão nas memórias rápidas. A otimização da localidade de dados, focalizada aqui, é baseado em transformação de programa direcionada à melhoria da localidade.
Note-se que é prioritário que se estabeleça uma métrica ou índice para se caracterizar quantitativamente essa localidade. Tendo disponibilidade dessa ferramenta, pode-se proceder à manipulação do código fonte através de transformações de programa, de modo a se chegar a uma estrutura com localidade ótima. O parâmetro a ser utilizado para a obtenção quantitativa da localidade de dados é o custo da janela de referência, tal como definido em [EISE90].
Neste caso, concentraremos a análise sobre a reutilização de elementos em uma matriz, o que não constitue grave restrição, uma vez que em programação para análise científica, a maior carga computacional está na manipulação de matrizes.
As transformações de programa tratadas aqui ficarão limitadas às transformações unimodulares, particularmente o loop interchange.