1 / 30

ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS

ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS. Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade de São Paulo PCS - Departamento de Engenharia de Computação e Sistemas Digitais. ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA

Download Presentation

ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 de São Paulo PCS - Departamento de Engenharia de Computação e Sistemas Digitais

  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 de São Paulo PCS - Departamento de Engenharia de Computação e Sistemas Digitais

  3. 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 • Padrão de Acessos à Memória • Localidade de Referências • Visualização e Análise • Simulação baseada em Arquivos de Trace • Computação de Alto Desempenho • Multiprocessamento

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

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

  10. 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

  11. CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP • Janela de Aproximação

  12. 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

  13. 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 a9 Página 1 Página 2 Página 3 (exemplo simplificado) CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

  14. =  C A B 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++)

  15. 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++)

  16. = C A B 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 (k=0; k<N; k++) for (j=0; j<N; j++)

  17. 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 (j=0; j<N; j++) for (k=0; k<N; k++) for (i=0; i<N; i++)

  18. CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP =  C A B • 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 (j=0; j<N; j++) for (k=0; k<N; k++) for (i=0; i<N; i++)

  19. =  = C A B C A B =  C A B CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP =  C A B =  C A B =  C A B • Multiplicação de Matrizes • Todas as possíveis permutações: ijk ikj jki jik kij kji

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

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

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

  23. 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

  24. 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

  25. 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

  26. CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP • Tempos de Execução (*) 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.

  27. Versão Atual da Ferramenta • Diferenciação entre leitura/gravação e processadores Versão ijk com 2 processadores Proc. 1 - Leitura Proc. 1 - Gravação Proc. 2 - Leitura Proc. 2 - Gravação CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP

  28. 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)

  29. CBComp 2002 - Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP • Contato • Hugo Henrique Cassettari: hugo.cassettari@poli.usp.br • Edson Toshimi Midorikawa:edson.midorikawa@poli.usp.br • ESCOLA POLITÉCNICA DA USP • Departamento de Engenharia de Computação e Sistemas Digitais • Laboratório de Arquitetura e Software Básico • Av. Prof. Luciano Gualberto, travessa 3, 158, Cidade Universitária • CEP: 05508-900, São Paulo-SP Questões?

More Related