30

ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

Embed Size (px)

Citation preview

Page 1: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade
Page 2: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIAANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIADE PROGRAMAS PARALELOSDE PROGRAMAS PARALELOS

Hugo Henrique CassettariEdson Toshimi Midorikawa

EPUSP - Escola Politécnica da Universidade de São PauloPCS - Departamento de Engenharia de Computação e Sistemas Digitais

Page 3: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIAANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIADE PROGRAMAS PARALELOSDE PROGRAMAS PARALELOS

Hugo Henrique CassettariEdson Toshimi Midorikawa

EPUSP - Escola Politécnica da Universidade de São PauloPCS - Departamento de Engenharia de Computação e Sistemas Digitais

Page 4: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Escopo

• Avaliação de Desempenho

• Ferramenta Desenvolvida

• Programação Paralela– Computação de Alto Desempenho– Multiprocessamento

– Padrão de Acessos à Memória– Localidade de Referências

– Visualização e Análise– Simulação baseada em Arquivos de Trace

Page 5: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Motivação

• Memória possui uma limitação teórica - “memory wall”

• Alternativa: explorar localidades de referências

• Técnicas de programação podem levar a uma maior localidade de acessos

• Visualizar padrões de acesso de programas à memória pode ser um recurso importante

Page 6: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Contexto

• Simulação e avaliação de sistemas de memória– Técnicas de otimização– Algoritmos de substituição de páginas– Influência da propriedade de localidade de acessos

• Dificuldade em se detectar facilmente padrões de acesso à memória

Programaexecutável

Ferramenta deVisualização e Análise

resultadosarquivode traces

Gerador de traces tela

Page 7: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Padrões de Acesso à Memória

• Refere-se a como os programas endereçam as posições de memória

• Espaço virtual deve favorecer o funcionamento do sistema

• Exploração de uma “região” de endereços favorece o desempenho

Page 8: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Ferramenta de Visualização e Análise

• Desenvolvida em Java

• Módulo de pré-processamento desenvolvido em C

• Disponível nas plataformas Linux e Microsoft Windows

• Permite uma abordagem visual do comportamento dos programas em relação aos seus acessos à memória

• Gráfico informa os endereços de memória acessados no decorrer do tempo de execução

Page 9: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Janela Principal

• Todos os acessos do(s) programa(s) selecionado(s)

• Cada cor identifica um programa

• Sobreposição de cores

Page 10: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Janela Principal

Page 11: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Janela de Aproximação

• Janela de aproximação base– Seleção de trecho– Aproximação parcial

• Janela de aproximação sucessiva– Aproximação infinita– Cópia comparativa temporária na janela de aproximação base

Page 12: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Janela de Aproximação

Page 13: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Estudo de Caso: Multiplicação de Matrizes

• Três formas básicas de acesso aos elementos:

– Acesso por linhas

– Acesso por colunas

– Acesso por diagonais

Page 14: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Armazenamento de Matrizes em Memória

• Matriz quadrada de ordem 3:

a1 a2 a3

A = a4 a5 a6

a7 a8 a9

• Armazenamento na memória, em C ou Pascal: 1 2 3 4 5 6 7 8 9

a1 a2 a3 a4 a5 a6 a7 a8 a9Página 1 Página 2 Página 3 (exemplo simplificado)

Page 15: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Multiplicação de Matrizes

• Algoritmo tradicional (ijk):

• C = A x B, sendo que:

– MATRIZ A: Acesso por linhas– MATRIZ B: Acesso por colunas– MATRIZ C: Acesso por linhas

C[i][j]=C[i][j] + A[i][k]*B[k][j];

for (i=0; i<N; i++)

for (j=0; j<N; j++)

for (k=0; k<N; k++)

=

BAC

Page 16: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Multiplicação de Matrizes

• C = A x B, sendo que:

– MATRIZ A:– MATRIZ B:– MATRIZ C:

C[i][j]=C[i][j] + A[i][k]*B[k][j];

for (i=0; i<N; i++)

for (j=0; j<N; j++)

for (k=0; k<N; k++)

Page 17: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Multiplicação de Matrizes

• Versão ikj:

• C = A x B, sendo que:

– MATRIZ A: Acesso por linhas– MATRIZ B: Acesso por linhas– MATRIZ C: Acesso por linhas

C[i][j]=C[i][j] + A[i][k]*B[k][j];

for (i=0; i<N; i++)

for (j=0; j<N; j++)

=

BAC

for (k=0; k<N; k++)

Page 18: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Multiplicação de Matrizes

• C = A x B, sendo que:

– MATRIZ A:– MATRIZ B:– MATRIZ C:

C[i][j]=C[i][j] + A[i][k]*B[k][j];

for (i=0; i<N; i++)

for (k=0; k<N; k++)

for (j=0; j<N; j++)

Page 19: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Multiplicação de Matrizes

• Versão jki:

• C = A x B, sendo que:

– MATRIZ A: Acesso por colunas– MATRIZ B: Acesso por colunas– MATRIZ C: Acesso por colunas

C[i][j]=C[i][j] + A[i][k]*B[k][j];

for (i=0; i<N; i++)

for (k=0; k<N; k++)

for (j=0; j<N; j++)

=

BAC

Page 20: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Multiplicação de Matrizes

• Todas as possíveis permutações:

=

BAC

=

BAC

=

BAC

=

BAC

=

BAC

=

BAC

Page 21: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Padrão de Acessos da Versão ijk

Page 22: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Padrão de Acessos da Versão ikj

Page 23: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Padrão de Acessos da Versão jki

Page 24: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Versão ikj-uj-sr

• Otimizações no código de forma a explorar ainda mais a hierarquia de memória

• Transformação unroll-and-jam– Reúne vários acessos a uma mesma posição de matriz no loop

mais interno

• Transformação scalar replacement– Posições referenciadas são atribuídas a variáveis escalares a

cada iteração

Page 25: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Padrão de Acessos da Versão ikj-uj-sr

Page 26: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Padrão de Acessos da Versão ikj-uj-sr

• Padrão de acessos praticamente idêntico ao da versão ikj

• Menor tempo de execução

• Exploração de registradores do processador

Page 27: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Tempos de Execução

Desempenho das Versões

0

100

200

300

400

500

600

700

800

1 2 3 4

Número de CPUs

Te

mp

o d

e E

xe

cuçã

o

(se

gu

nd

os) ijk

ikj

jki

ikj-uj-sr

(*) Matrizes de ordem 1500, executadas em uma máquina SMP com 4 processadores Pentium II Xeon de 400 MHz e 256 MB de memória principal, sistema operacional Linux.

Page 28: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Versão Atual da Ferramenta

• Diferenciação entre leitura/gravação e processadores

Versão ijk com2 processadores

Proc. 1 - LeituraProc. 1 - GravaçãoProc. 2 - LeituraProc. 2 - Gravação

Page 29: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Trabalhos Futuros

• Utilização de programas de estudo maiores

• Análise aprofundada do sistema de memória virtual

• Suporte a arquivos de trace compactados

• Suporte a programas MPI (processamento distribuído)

Page 30: ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade

CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

Contato

• Hugo Henrique Cassettari: [email protected]• Edson Toshimi Midorikawa: [email protected]

• ESCOLA POLITÉCNICA DA USPDepartamento de Engenharia de Computação e Sistemas DigitaisLaboratório de Arquitetura e Software BásicoAv. Prof. Luciano Gualberto, travessa 3, 158, Cidade UniversitáriaCEP: 05508-900, São Paulo-SP