16-10-1997INPE / CAP-334 Celso L. Mendes Aula 4-D(1) Reestruturação de Programas em Sistemas Vetoriais (II) Tópicos: Suporte à Paralelização Vetorização.

Slides:



Advertisements
Apresentações semelhantes
Programando com Threads em C
Advertisements

Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Modelo planetário: errado Elétrons são descritos por meio de funções de onda Mecânica Quântica : probabilidades.
Técnicas e Projeto de Sistemas
Prof. Celso Gramática Prof. Celso
FORTRAN 90 Denise Yumi Takamura.
INTRODUÇÃO À COMPUTAÇÃO PARALELA
SQL Procedural Junho/2006.
Sistemas Operacionais
Prof. Dr. Helder Anibal Hermini
Arquiteturas de 4, 3, 2, 1 e 0 endereços.
Utilização do montador Daedalus
1. Equivalência entre portas 2. Derivação de expressões booleanas 3
Algoritmos com laços (ou seja, com conjuntos de instruções que devem ser executados repetidas vezes)
Teste Estrutural de Software
Objetivo Receber propriedades rurais georreferenciadas e analisar a situação da Reserva Legal - RL, das áreas de Preservação Permanente - APP e das áreas.
Servidores e Programação Web Redes de Computadores.
Profa. Graziela Santos de Araújo Algoritmos e Programação II, 2010
Geração de Código Otimizações independentes de máquina.
Geração de Código Cap. 8. Introdução Fase final para um compilador Entrada é uma representação intermediária do código fonte e a saída é um programa para.
Geração de Código Algoritmo de Escalonamento de instruções – List Scheduling.
Problema do percurso mínimo
O Fluxo de Testes © Alexandre Vasconcelos
PotenCial ElÉTRICO Universidade Federal do Paraná
HAND: Height Above the Nearest Drainage
Curso de Engenharia Industrial Madeireira – UFPR Prof. Umberto Klock
FERRAMENTAS DA QUALIDADE
Funções de um computador
Ibn sina (Avicena ) Necessidade e contingência.
Capitulo 3 Técnicas de Diagnóstico CT-282 Tutores Inteligentes Diego Ajukas.
Adriana da Silva Jacinto CT-282 Prof. Dr.Parente Técnicas de diagnóstico 1º semestre 2005.
01/08/20061 CT-282 Tutores Inteligentes ITA - INSTITUTO TECNOLÓGICO DE AERONÁUTICA.
CES-11 LAB 03 Bitmap Quadtree
1.3 – Interpretadores – Compiladores versus Interpretadores
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VII Variáveis Indexadas Numéricas.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo XI Noções de Estruturas de Dados.
1. Função: - Criar meios para que o processador possa comunicar-se com todos estes componentes com a maior velocidade e confiabilidade possíveis. - Na.
Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação.
Probabilidade e Esperança Condicional
Mecânica dos Materiais TA-431 FEA/Unicamp
Curso Técnico em Informática La Salle - Canoas
FUNDAÇÃO CARLOS CHAGAS
BlastPhen Aluno: Ricardo Nishikido Pereira
Mac-499 Trabalho de Formatura Supervisionado
ALOCAÇÃO DINÂMICA DE MEMÓRIA
TÉCNICAS DE CODIFICAÇÃO DE SINAIS
Resolução de Sistemas Não-Lineares- Parte 1
Sistemas Lineares Parte 2
Resolução de Sistemas Lineares- Parte 1
Organização de Sistemas de Computadores
Introdução à Arquitetura de Computadores
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Pipeline É possível obter maior desempenho computacional com:
Linguagens Formais e Tradutores Linguagens Regulares (Revisão)
Recursividade Estrutura de Dados.
Curso de Programação em C++ Universidade Federal do Ceará Departamento de Engenharia Estrutural e Construção Civil Prof: Evandro Parente Junior Monitor:
LINGUAGENS DE PROGRAMAÇÃO
Baseado no documento do Prof. Ronaldo Martins da Costa
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Sistemas de Informação Prof. Me. Everton C. Tetila Modelo de dados relacional Banco de Dados I.
Programação Concorrente com Thread Java
Robótica: Sistemas Sensorial e Motor
Prof. André Laurindo Maitelli DCA-UFRN
1 Seja o resultado de um experimento aleatório. Suponha que uma forma de onda é associada a cada resultado.A coleção de tais formas de ondas formam um.
8. Uma Função de duas Variáveis Aleatórias
Professor: Hyggo Almeida
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 30 (1) Empacotamento de Dados em MPI Tópicos: Buffer de Mensagem Empacotamento/Desempacotamento.
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 6 (1) Reestruturação de Programas em Sistemas Vetoriais Tópicos: Técnicas de Otimização Notação.
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 8 (1) Exploração de Paralelismo em Sistemas Vetoriais Tópicos: Vetorização Paralelização.
Transcrição da apresentação:

INPE / CAP-334 Celso L. Mendes Aula 4-D(1) Reestruturação de Programas em Sistemas Vetoriais (II) Tópicos: Suporte à Paralelização Vetorização x Paralelização Exploração de Paralelismo Referência: Padua,D.A. & Wolfe,M.J. Advanced Compiler Optimizations for Supercomputers, Communications of the ACM, 29(12), Dec. 1986, pp

INPE / CAP-334 Celso L. Mendes Aula 4-D(2) Suporte à Paralelização Paralelismo total: doall Ex: doall i=1,N... (iterações independentes) enddoall Paralelismo parcial (com sincronização): doacross Ex: doacross i=1,N... signal(i)... wait(i-1)... enddoacross

INPE / CAP-334 Celso L. Mendes Aula 4-D(3) Vetorização x Paralelização Problema: Decidir pela vetorização ou pela paralelização, quando ambas são possíveis Loops dentro de loops: Pode ser possível paralelizar alguns e/ou vetorizar outros... Critério: Eficiência na execução ( pode depender da arquitetura específica!) Exemplo: do j = 1,N do i=1,N S 1 : A(i,j+1) = B(i,j) + C(i,j) S 2 : D(i,j) = A(i,j) * 2 enddo

INPE / CAP-334 Celso L. Mendes Aula 4-D(4) Vetorização x Paralelização (cont.) Exemplo (cont.): 1 a Opção: Vetorizar loop i e paralelizar loop j +Vetorização vai acessar arrays por colunas (stride=1) –Devido à dependência, paralelização exige sincronização entre processadores 2 a Opção: Paralelizar loop i e vetorizar loop j –Vetorização vai acessar arrays por linhas (stride>1) +Como não há dependência carregada pelo loop i, não é necessário haver sincronização entre processadores Saldo final vai depender dos custos de acesso à memória e de sincronização entre processadores

INPE / CAP-334 Celso L. Mendes Aula 4-D(5) Vetorização x Paralelização (cont.) Exemplo (cont.): 1 a Opção: Vetorizar loop i e paralelizar loop j doacross j=1,N S 1 : A(1:N,j+1) = B(1:N,j) + C(1:N,j) signal(j+1) if (j>1) wait(j) S 2 : D(1:N,j) = A(1:N,j) * 2 enddoacross –S 1 pode ser executado simultaneamente por todos os processadores –O início da execução de S 2 ocorre em seqüência pelos processadores

INPE / CAP-334 Celso L. Mendes Aula 4-D(6) Vetorização x Paralelização (cont.) Exemplo (cont.): 2 a Opção: Paralelizar loop i e vetorizar loop j doall i=1,N S 1 : A(i,2:N+1) = B(i,1:N) + C(i,1:N) S 2 : D(i,1:N) = A(i,1:N) * 2 enddoall –Cada processador executa S 1 e depois S 2 –A seqüência ( S 1 ;S 2 ) pode ser executada simultaneamente por todos os processadores –Todos os arrays são acessados por linha (stride>1)

INPE / CAP-334 Celso L. Mendes Aula 4-D(7) Exploração de Paralelismo Objetivo Geral: Explicitar o paralelismo potencial em casos de loops menos evidentes 1) Reconhecimento de Variáveis de Indução: inc = N do i=1,N i2 = 2*i - 1 X(inc) = Y(i) + Z(i2) inc = inc - 1 enddo Obs: inc e i2 formam uma P.A. Loop Vetorizado: X(N:1:-1) = Y(1:N) + Z(1:2*N-1:2)

INPE / CAP-334 Celso L. Mendes Aula 4-D(8) Exploração de Paralelismo (cont.) 2) Substituição Global: np1 = N+1 np2 = N+2... do i=1,N S 1 : B(i) = A(np1) + C(i) S 2 : A(i) = A(i) - 1 do j=2,N S 3 : D(j,np1) = D(j-1,np2) * C(j) + 1 enddo np1>N : S 1 e S 2 (e iterações do loop i ) são independentes np1 np2 : iterações do loop j são independentes

INPE / CAP-334 Celso L. Mendes Aula 4-D(9) Exploração de Paralelismo (cont.) 3) Análise Semântica: if (K > 0) then do i=1,N S 1 : A(i) = B(i) + A(i+K) enddo endif Analizando apenas S 1 : S 1 < S 1 (Loop não pode ser vetorizado nem paralelizado) Mas o loop só é executado se K>0; logo, S 1 a < S 1 Loop pode ser vetorizado, mas não paralelizado

INPE / CAP-334 Celso L. Mendes Aula 4-D(10) Exploração de Paralelismo (cont.) 4) Eliminação de Antidependências ou Depend.Saída: do i=1,N S 1 : A(i) = B(i) + C(i) S 2 : A(i+1) = A(i) + 2 * D(i) enddo Grafo de Dependências: S 1 S 2 Idéia: Quebrar o ciclo através do uso de um array auxiliar do i=1,N S 1 : ATEMP(i) = B(i) + C(i) S 2 : A(i+1) = ATEMP(i) + 2 * D(i) S 3 : A(i) = ATEMP(i) enddo

INPE / CAP-334 Celso L. Mendes Aula 4-D(11) Exploração de Paralelismo (cont.) Novo Grafo de Dependências: S 1 S 2 S 3 Código Vetorizado: S 1 : ATEMP(1:N) = B(1:N) + C(1:N) S 2 : A(2:N+1) = ATEMP(1:N) + 2 * D(1:N) S 3 : A(1:N) = ATEMP(1:N)