SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Introdução à Computação de Alto
          Desempenho
                          Vinícius Alves Hax
                   Sistemas Distribuídos - FURG




                        Setembro de 2012
Sobre mim

Engenheiro de Computação
Especialista em Aplicações para a Web
Aluno Mestrado Engenharia de
Computação

Analista 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
Roda em um único
Tradicionalmente como   computador com um único
software é 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
Por que a Computação de Alto Desempenho é
               importante?




                                            4
Tempo   e espaço   !


                       5
Meteorologia




               6
Biologia Computacional




                         7
Entretenimento




                 8
Mas os computadores não ficam cada vez mais
                rápidos?




                                              9
Lei de Moore (1965)




                      10
Lei de Moore (1965)




Estamos próximos do limite físico do transistor...
                                                      11
Computação paralela!




                       12
Taxonomia de Flynn




●SISD: Computadores com núcleo único
●SIMD: Instruções SSE, MMX, Processadores

vetoriais
●MISD: Redundância (pouco comuns)

●MIMD: Computadores com múltiplos núcleos


                                                 13
Tipos de paralelismo

Bit-level (ex: tamanho dos processadores)
Instruction Level (ILP): ex: pipeline)
Data paralelism: divisão dos dados
Task paralelism: divisão por tarefas




                                                       14
Tipos de paralelismo de dados

Taxa de computação por
comunicação
  Fine-grain
  Coarse-grain




                                                   15
Modelos de computação

Memória compartilhada
  OpenMP
  Threads (Pthreads)
  OpenCL
Memória distribuída
  MPI




                                                16
Exemplo OpenMP

#include <omp.h>
#define CHUNKSIZE 100
#define N 1000
main () {
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
Arq. de Memória – Memória Compartilhada




                                          18
Arq. de Memória – Memória Distribuída




                                        19
Arq. de Memória - Híbrida




                            20
Leituras adicionais e referências

http://en.wikipedia.org/wiki/Parallel_computers
https://computing.llnl.gov/tutorials/parallel_comp/
https://computing.llnl.gov/tutorials/openMP/




                                                        21
Fontes das imagens

http://previsaonumerica.cptec.inpe.br/golMapWeb/DadosPages?id=Eta15#
http://en.wikipedia.org/wiki/Protein_folding
http://www.imdb.com/title/tt0435761/
http://pt.wikipedia.org/wiki/Lei_de_Moore
http://users.cis.fiu.edu/~prabakar/cda4101/Common/notes/lecture03.html




                                                                         22

Weitere ähnliche Inhalte

Was ist angesagt?

Algoritmos paralelos
Algoritmos paralelosAlgoritmos paralelos
Algoritmos paralelos
Douglas Silva
 

Was ist angesagt? (20)

Curso openmp
Curso openmpCurso openmp
Curso openmp
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
Aula 06-oac-memoria-principal
Aula 06-oac-memoria-principalAula 06-oac-memoria-principal
Aula 06-oac-memoria-principal
 
Algoritmos paralelos
Algoritmos paralelosAlgoritmos paralelos
Algoritmos paralelos
 
Aula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de ComputadoresAula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de Computadores
 
Modelo de von neumann melhorado
Modelo de von neumann melhoradoModelo de von neumann melhorado
Modelo de von neumann melhorado
 
Aula 4 de Arquitetura de Computadores
Aula 4 de Arquitetura de ComputadoresAula 4 de Arquitetura de Computadores
Aula 4 de Arquitetura de Computadores
 
Hardware memória principal
Hardware  memória  principalHardware  memória  principal
Hardware memória principal
 
Estudo_PPI
Estudo_PPIEstudo_PPI
Estudo_PPI
 
Hardware questionario 01
Hardware   questionario 01Hardware   questionario 01
Hardware questionario 01
 
Gerência de Memória: Memória Principal
Gerência de Memória: Memória PrincipalGerência de Memória: Memória Principal
Gerência de Memória: Memória Principal
 
Ferramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas MulticoreFerramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas Multicore
 
Memória Primária
Memória PrimáriaMemória Primária
Memória Primária
 
Introdução às Redes Neurais - Parte 1/2
Introdução às Redes Neurais - Parte 1/2Introdução às Redes Neurais - Parte 1/2
Introdução às Redes Neurais - Parte 1/2
 
Organizações de Múltiplos Processadores - UFMA - Engenharia da Computação.
Organizações de Múltiplos Processadores - UFMA - Engenharia da Computação.Organizações de Múltiplos Processadores - UFMA - Engenharia da Computação.
Organizações de Múltiplos Processadores - UFMA - Engenharia da Computação.
 
IX Pylestras - SmartGrid com Python
IX Pylestras - SmartGrid com PythonIX Pylestras - SmartGrid com Python
IX Pylestras - SmartGrid com Python
 
Introdução às Redes Neurais - Parte 2/2
Introdução às Redes Neurais - Parte 2/2Introdução às Redes Neurais - Parte 2/2
Introdução às Redes Neurais - Parte 2/2
 
Aula II
Aula IIAula II
Aula II
 
Arquitetura de Von Neumann
Arquitetura de Von NeumannArquitetura de Von Neumann
Arquitetura de Von Neumann
 
Introdução a Deep Learning
Introdução a Deep LearningIntrodução a Deep Learning
Introdução a Deep Learning
 

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

Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid
Fernando Gomes Chaves
 
Aula 10 microcomputadores
Aula 10   microcomputadoresAula 10   microcomputadores
Aula 10 microcomputadores
Renaldo Adriano
 
Computação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem GeralComputação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem Geral
Igor José F. Freitas
 
Aula 1 conhecimentos básicos - hardware
Aula 1    conhecimentos básicos - hardwareAula 1    conhecimentos básicos - hardware
Aula 1 conhecimentos básicos - hardware
Cristiano Carvalho
 
Aula de introducao ao ZOS
Aula de introducao ao ZOSAula de introducao ao ZOS
Aula de introducao ao ZOS
Ivan Sanches
 
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Paulo Vital
 
1 º parte conceitos e fundamentos
1 º parte   conceitos e fundamentos 1 º parte   conceitos e fundamentos
1 º parte conceitos e fundamentos
Atila Curso Pontual
 
Aula 1 aed - introdução à computação
Aula 1   aed - introdução à computaçãoAula 1   aed - introdução à computação
Aula 1 aed - introdução à computação
Elaine Cecília Gatto
 
Resumos para Concursos - v.34 - Informática (2014)
Resumos para Concursos - v.34 - Informática (2014)Resumos para Concursos - v.34 - Informática (2014)
Resumos para Concursos - v.34 - Informática (2014)
Editora Juspodivm
 
Desafios no dimensionamento de capacidade em ambiente Mainframe por Fernando ...
Desafios no dimensionamento de capacidade em ambiente Mainframe por Fernando ...Desafios no dimensionamento de capacidade em ambiente Mainframe por Fernando ...
Desafios no dimensionamento de capacidade em ambiente Mainframe por Fernando ...
Joao Galdino Mello de Souza
 

Ähnlich wie Introdução à Computação de Alto Desempenho - Parte I (20)

Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid
 
Aula 10 microcomputadores
Aula 10   microcomputadoresAula 10   microcomputadores
Aula 10 microcomputadores
 
Computação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem GeralComputação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem Geral
 
Aula 1 conhecimentos básicos - hardware
Aula 1    conhecimentos básicos - hardwareAula 1    conhecimentos básicos - hardware
Aula 1 conhecimentos básicos - hardware
 
Linguagem c wellington telles - aula 01
Linguagem c   wellington telles - aula 01Linguagem c   wellington telles - aula 01
Linguagem c wellington telles - aula 01
 
Aula de introducao ao ZOS
Aula de introducao ao ZOSAula de introducao ao ZOS
Aula de introducao ao ZOS
 
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
 
sistemas operativos.ppt
sistemas operativos.pptsistemas operativos.ppt
sistemas operativos.ppt
 
1 º parte conceitos e fundamentos
1 º parte   conceitos e fundamentos 1 º parte   conceitos e fundamentos
1 º parte conceitos e fundamentos
 
Roteiro IOC 05
Roteiro IOC 05Roteiro IOC 05
Roteiro IOC 05
 
Introdução a computação
Introdução a computaçãoIntrodução a computação
Introdução a computação
 
História dos Sistemas - 3a Semana de SI
História dos Sistemas - 3a Semana de SIHistória dos Sistemas - 3a Semana de SI
História dos Sistemas - 3a Semana de SI
 
Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!
 
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisSistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
 
Aula 1 aed - introdução à computação
Aula 1   aed - introdução à computaçãoAula 1   aed - introdução à computação
Aula 1 aed - introdução à computação
 
Resumos para Concursos - v.34 - Informática (2014)
Resumos para Concursos - v.34 - Informática (2014)Resumos para Concursos - v.34 - Informática (2014)
Resumos para Concursos - v.34 - Informática (2014)
 
Desafios no dimensionamento de capacidade em ambiente Mainframe por Fernando ...
Desafios no dimensionamento de capacidade em ambiente Mainframe por Fernando ...Desafios no dimensionamento de capacidade em ambiente Mainframe por Fernando ...
Desafios no dimensionamento de capacidade em ambiente Mainframe por Fernando ...
 
Apostila pro tools_pt
Apostila pro tools_ptApostila pro tools_pt
Apostila pro tools_pt
 
Apostila pro tools pt-br
Apostila pro tools   pt-brApostila pro tools   pt-br
Apostila pro tools pt-br
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da Microarquitetura
 

Mehr von Vinícius Hax

Mehr von Vinícius Hax (16)

História da computação - Parte 1 de 2 - Do princípio até 1936
História da computação - Parte 1 de 2 - Do princípio até 1936História da computação - Parte 1 de 2 - Do princípio até 1936
História da computação - Parte 1 de 2 - Do princípio até 1936
 
Do Zero ao YouTube em menos de 10 softwares livres
Do Zero ao YouTube em menos de 10 softwares livresDo Zero ao YouTube em menos de 10 softwares livres
Do Zero ao YouTube em menos de 10 softwares livres
 
Uso de Software Livre e alternativas open source
Uso de Software Livre e alternativas open sourceUso de Software Livre e alternativas open source
Uso de Software Livre e alternativas open source
 
E agora o que faço eu da vida sem você (faculdade)?
E agora o que faço eu da vida sem você (faculdade)?E agora o que faço eu da vida sem você (faculdade)?
E agora o que faço eu da vida sem você (faculdade)?
 
Software Livre e Star Wars
Software Livre e Star WarsSoftware Livre e Star Wars
Software Livre e Star Wars
 
Software Livre e Star Wars
Software Livre e Star WarsSoftware Livre e Star Wars
Software Livre e Star Wars
 
30 anos da Free Software Foundation
30 anos da Free Software Foundation30 anos da Free Software Foundation
30 anos da Free Software Foundation
 
E agora o que faço eu da vida sem você (faculdade)?
E agora o que faço eu da vida sem você (faculdade)?E agora o que faço eu da vida sem você (faculdade)?
E agora o que faço eu da vida sem você (faculdade)?
 
Conhecendo ou relembrando C
Conhecendo ou relembrando CConhecendo ou relembrando C
Conhecendo ou relembrando C
 
Como ficar milionário, só que ao contrário!
Como ficar milionário, só que ao contrário!Como ficar milionário, só que ao contrário!
Como ficar milionário, só que ao contrário!
 
Software Livre na Vida Científica e Acadêmica
Software Livre na Vida Científica e AcadêmicaSoftware Livre na Vida Científica e Acadêmica
Software Livre na Vida Científica e Acadêmica
 
Por que usar Software Livre afinal?
Por que usar Software Livre afinal?Por que usar Software Livre afinal?
Por que usar Software Livre afinal?
 
Padrões IETF para IP em dispositivos de baixa potência
Padrões IETF para IP em dispositivos de baixa potênciaPadrões IETF para IP em dispositivos de baixa potência
Padrões IETF para IP em dispositivos de baixa potência
 
Introdução à Shellscript
Introdução à ShellscriptIntrodução à Shellscript
Introdução à Shellscript
 
Instalação de softwares em sistemas baseados no Debian
Instalação de softwares em sistemas baseados no DebianInstalação de softwares em sistemas baseados no Debian
Instalação de softwares em sistemas baseados no Debian
 
2025 - O ano do Linux no Desktop?
2025 - O ano do Linux no Desktop?2025 - O ano do Linux no Desktop?
2025 - O ano do Linux no Desktop?
 

Kürzlich hochgeladen

Kürzlich hochgeladen (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

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