A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS Hugo Henrique Cassettari Edson Toshimi Midorikawa EPUSP - Escola Politécnica da Universidade."— Transcrição da apresentação:

1

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

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

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

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

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

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

9 CBComp 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

10 CBComp Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP Janela Principal

11 CBComp 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

12 CBComp Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP Janela de Aproximação

13 CBComp 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

14 CBComp Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP Armazenamento de Matrizes em Memória Matriz quadrada de ordem 3: a 1 a 2 a 3 A =a 4 a 5 a 6 a 7 a 8 a 9 Armazenamento na memória, em C ou Pascal: a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 Página 1Página 2Página 3 (exemplo simplificado)

15 CBComp 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

16 CBComp 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

17 CBComp 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

18 CBComp 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

19 CBComp 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

20 CBComp 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

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

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

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

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

25 CBComp Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP Padrão de Acessos da Versão ikj-uj-sr

26 CBComp 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

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

28 CBComp 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 com 2 processadores Proc. 1 - Leitura Proc. 1 - Gravação Proc. 2 - Leitura Proc. 2 - Gravação

29 CBComp 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)

30 CBComp Análise do Padrão de Acessos à Memória de Programas Paralelos / EPUSP Contato Hugo Henrique Cassettari: Edson Toshimi Midorikawa: 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: , São Paulo-SP


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

Apresentações semelhantes


Anúncios Google