Introdução à Computação de Alto Desempenho - Parte I

1.855 visualizações

Publicada em

Introdução à Computação de Alto Desempenho. Essa apresentação foi usada como base para uma aula de Sistemas Distribuídos ministrada na FURG. Pode servir como introdução ao tema. Para mais informações sobre o assunto consultar as referências ao final da apresentação. Nas minhas apresentações aqui no slideshare existe uma parte II que aborda conceitos complementares.

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.855
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
42
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Introdução à Computação de Alto Desempenho - Parte I

  1. 1. Introdução à Computação de Alto Desempenho Vinícius Alves Hax Sistemas Distribuídos - FURG Setembro de 2012
  2. 2. Sobre mimEngenheiro de ComputaçãoEspecialista em Aplicações para a WebAluno Mestrado Engenharia deComputaçãoAnalista de Tecnologia de Informação (FURG)Empreendedor (Zetaflops)Interesses: Software Livre, Linux, MetodologiasÁgeis, Rails, Computação de Alto Desempenho,Internet das Coisas, Governo Eletrônico, Web 2
  3. 3. Roda em um únicoTradicionalmente como computador com um únicosoftware é escrito: processador O problema é decomposto em uma série de operações discretas Instruções são executadas uma após outra Apenas uma instrução executa a cada momento 3
  4. 4. Por que a Computação de Alto Desempenho é importante? 4
  5. 5. Tempo e espaço ! 5
  6. 6. Meteorologia 6
  7. 7. Biologia Computacional 7
  8. 8. Entretenimento 8
  9. 9. Mas os computadores não ficam cada vez mais rápidos? 9
  10. 10. Lei de Moore (1965) 10
  11. 11. Lei de Moore (1965)Estamos próximos do limite físico do transistor... 11
  12. 12. Computação paralela! 12
  13. 13. Taxonomia de Flynn●SISD: Computadores com núcleo único●SIMD: Instruções SSE, MMX, Processadoresvetoriais●MISD: Redundância (pouco comuns)●MIMD: Computadores com múltiplos núcleos 13
  14. 14. Tipos de paralelismoBit-level (ex: tamanho dos processadores)Instruction Level (ILP): ex: pipeline)Data paralelism: divisão dos dadosTask paralelism: divisão por tarefas 14
  15. 15. Tipos de paralelismo de dadosTaxa de computação porcomunicação Fine-grain Coarse-grain 15
  16. 16. Modelos de computaçãoMemória compartilhada OpenMP Threads (Pthreads) OpenCLMemória distribuída MPI 16
  17. 17. Exemplo OpenMP#include <omp.h>#define CHUNKSIZE 100#define N 1000main () {int i, chunk;float a[N], b[N], c[N];/* Some initializations */for (i=0; i < N; i++) a[i] = b[i] = i * 1.0;chunk = CHUNKSIZE;#pragma omp parallel shared(a,b,c,chunk) private(i) { #pragma omp for schedule(dynamic,chunk) nowait for (i=0; i < N; i++) c[i] = a[i] + b[i]; } /* end of parallel section */} 17
  18. 18. Arq. de Memória – Memória Compartilhada 18
  19. 19. Arq. de Memória – Memória Distribuída 19
  20. 20. Arq. de Memória - Híbrida 20
  21. 21. Leituras adicionais e referênciashttp://en.wikipedia.org/wiki/Parallel_computershttps://computing.llnl.gov/tutorials/parallel_comp/https://computing.llnl.gov/tutorials/openMP/ 21
  22. 22. Fontes das imagenshttp://previsaonumerica.cptec.inpe.br/golMapWeb/DadosPages?id=Eta15#http://en.wikipedia.org/wiki/Protein_foldinghttp://www.imdb.com/title/tt0435761/http://pt.wikipedia.org/wiki/Lei_de_Moorehttp://users.cis.fiu.edu/~prabakar/cda4101/Common/notes/lecture03.html 22

×