![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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/1.jpg)
![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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc14d497959413d8e2c1e/html5/thumbnails/30.jpg)
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