SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Algoritmos paralelos
Algoritmos paralelosAlgoritmos paralelos
Algoritmos paralelosDouglas Silva
 
Aula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de ComputadoresAula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de ComputadoresMarco Silva
 
Aula 4 de Arquitetura de Computadores
Aula 4 de Arquitetura de ComputadoresAula 4 de Arquitetura de Computadores
Aula 4 de Arquitetura de ComputadoresMarco Silva
 
Hardware questionario 01
Hardware   questionario 01Hardware   questionario 01
Hardware questionario 01Tiago
 
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 PrincipalAlexandre Duarte
 
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 MulticoreHelton Ritter
 
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/2Bruno Catã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.
Organizações de Múltiplos Processadores - UFMA - Engenharia da Computação.Leonardo Venancio
 
IX Pylestras - SmartGrid com Python
IX Pylestras - SmartGrid com PythonIX Pylestras - SmartGrid com Python
IX Pylestras - SmartGrid com Pythonitalomaia
 
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/2Bruno Catão
 
Arquitetura de Von Neumann
Arquitetura de Von NeumannArquitetura de Von Neumann
Arquitetura de Von NeumannWanessa Ribeiro
 
Introdução a Deep Learning
Introdução a Deep LearningIntrodução a Deep Learning
Introdução a Deep LearningCristian Muñoz
 

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

Similaire à Introdução à Computação de Alto Desempenho

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 microcomputadoresRenaldo Adriano
 
Computação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem GeralComputação Paralela - Uma Abordagem Geral
Computação Paralela - Uma Abordagem GeralIgor 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 - hardwareCristiano Carvalho
 
Linguagem c wellington telles - aula 01
Linguagem c   wellington telles - aula 01Linguagem c   wellington telles - aula 01
Linguagem c wellington telles - aula 01profwtelles
 
Aula de introducao ao ZOS
Aula de introducao ao ZOSAula de introducao ao ZOS
Aula de introducao ao ZOSIvan 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
 
sistemas operativos.ppt
sistemas operativos.pptsistemas operativos.ppt
sistemas operativos.pptssuserb52d9e
 
1 º parte conceitos e fundamentos
1 º parte   conceitos e fundamentos 1 º parte   conceitos e fundamentos
1 º parte conceitos e fundamentos Atila Curso Pontual
 
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 SILeo Lorieri
 
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!Intel Software Brasil
 
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 OperacionaisCharles Fortes
 
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çãoElaine 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
 
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 MicroarquiteturaLincoln Lamas
 

Similaire à Introdução à Computação de Alto Desempenho (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
 

Plus de Vinícius Hax

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é 1936Vinícius Hax
 
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 livresVinícius Hax
 
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 sourceVinícius Hax
 
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)?Vinícius Hax
 
Software Livre e Star Wars
Software Livre e Star WarsSoftware Livre e Star Wars
Software Livre e Star WarsVinícius Hax
 
Software Livre e Star Wars
Software Livre e Star WarsSoftware Livre e Star Wars
Software Livre e Star WarsVinícius Hax
 
30 anos da Free Software Foundation
30 anos da Free Software Foundation30 anos da Free Software Foundation
30 anos da Free Software FoundationVinícius Hax
 
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)?Vinícius Hax
 
Conhecendo ou relembrando C
Conhecendo ou relembrando CConhecendo ou relembrando C
Conhecendo ou relembrando CVinícius Hax
 
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!Vinícius Hax
 
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êmicaVinícius Hax
 
Por que usar Software Livre afinal?
Por que usar Software Livre afinal?Por que usar Software Livre afinal?
Por que usar Software Livre afinal?Vinícius Hax
 
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ênciaVinícius Hax
 
Introdução à Shellscript
Introdução à ShellscriptIntrodução à Shellscript
Introdução à ShellscriptVinícius Hax
 
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 DebianVinícius Hax
 
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?Vinícius Hax
 

Plus de 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?
 

Introdução à Computação de Alto Desempenho