O que é computação paralela?
Imagine que você precisa realizar um cálculo muito extenso em pouquíssimo tempo. Para realizar tal tarefa, você chama um grupo de amigos e divide esse cálculo em partes, uma para cada amigo. Depois de realizado o cálculo de cada parte, você junta os resultados obtidos para conseguir o resultado final desse calculo extenso.
INFORMÁTICA EM SERIE
Tradicionalmente, o software foi escrito para computação em série: Um problema é dividido em uma série discreta de instruções
As instruções são executadas sequencialmente uma após a outra
Executado em um único processador
Apenas uma instrução pode ser executada a qualquer momento no tempo
No sentido mais simples, a computação paralela é o uso simultâneo de múltiplos recursos computacionais para resolver um problema computacional: Um problema é dividido em partes discretas que podem ser resolvidas simultaneamente.
Cada parte é dividida em uma série de instruções.
As instruções de cada peça executam simultaneamente em diferentes processadores.
Um mecanismo geral de controle / coordenação é empregado
O processo computacional deve ser capaz de:
Ser dividido em peças discretas que podem ser resolvidas simultaneamente;
Executar várias instruções do programa a qualquer momento;
Ser resolvido em menos tempo com vários recursos de computação do que com um único recurso de computação.
Os recursos de computação são tipicamente:
Um único computador com vários processadores / núcleos
Um número arbitrário de tais computadores conectados por uma rede
Praticamente todos os computadores autônomos hoje são paralelos a partir de uma perspectiva de hardware: Várias unidades funcionais (cache L1, cache L2, ramificação, prefetch, decodificação, ponto flutuante, processamento gráfico (GPU), número inteiro, etc.)
Unidades / núcleos de execução múltipla
Múltiplos segmentos de hardware
As redes conectam múltiplos computadores autônomos (nós) para criar conjuntos de computadores paralelos maiores.
A maioria dos grandes computadores paralelos do mundo (supercomputadores) são clusters de hardware produzidos por um punhado de vendedores (principalmente) bem conhecidos
3. O que é computação paralela?
Imagine que você precisa realizar um cálculo
muito extenso em pouquíssimo tempo. Para
realizar tal tarefa, você chama um grupo de
amigos e divide esse cálculo em partes, uma
para cada amigo. Depois de realizado o cálculo
de cada parte, você junta os resultados obtidos
para conseguir o resultado final desse calculo
extenso.
4. O que é computação paralela?
1+1
2+2
3+3
4+4
5+5
C
Á
L
C
U
L
O
E
X
T
E
N
S
O
DADOS
DIVIDIDOS
30
Dividir para Conquistar
5. O que é computação paralela?
■INFORMÁTICA EM SERIE
■Tradicionalmente, o software foi escrito para computação em série: Um problema é dividido em uma
série discreta de instruções
■As instruções são executadas sequencialmente uma após a outra
■Executado em um único processador
■Apenas uma instrução pode ser executada a qualquer momento no tempo
6. O que é computação paralela?
■No sentido mais simples, a computação paralela é o uso simultâneo de múltiplos recursos
computacionais para resolver um problema computacional: Um problema é dividido em partes
discretas que podem ser resolvidas simultaneamente.
■Cada parte é dividida em uma série de instruções.
■As instruções de cada peça executam simultaneamente em diferentes processadores.
■Um mecanismo geral de controle / coordenação é empregado
7. O conceito
O processo computacional deve ser capaz de:
• Ser dividido em peças discretas que podem ser resolvidas
simultaneamente;
• Executar várias instruções do programa a qualquer momento;
• Ser resolvido em menos tempo com vários recursos de computação do
que com um único recurso de computação.
Os recursos de computação são tipicamente:
• Um único computador com vários processadores / núcleos
• Um número arbitrário de tais computadores conectados por uma rede
8. Computadores paralelos
Praticamente todos os computadores autônomos hoje são paralelos a
partir de uma perspectiva de hardware: Várias unidades funcionais (cache
L1, cache L2, ramificação, prefetch, decodificação, ponto flutuante,
processamento gráfico (GPU), número inteiro, etc.)
Unidades / núcleos de execução múltipla
Múltiplos segmentos de hardware
As redes conectam múltiplos computadores autônomos (nós) para criar conjuntos de
computadores paralelos maiores.
9. Computadores paralelos
A maioria dos
grandes
computadores
paralelos do
mundo
(supercomputad
ores) são
clusters de
hardware
produzidos por
um punhado de
vendedores
(principalmente)
bem conhecidos
10. Por que usar a computação paralela?
GANHAR TEMPO E / OU
DINHEIRO: Em teoria, lançar
mais recursos em uma tarefa
reduzirá seu tempo até a
conclusão, com potencial de
redução de custos.
Computadores paralelos podem
ser construídos a partir de
componentes baratos e básicos.
FORNECER CONCORRÊNCIA:
Um único recurso de computação
só pode fazer uma coisa por
vez. Múltiplos recursos de
computação podem fazer muitas
coisas simultaneamente.
Exemplo: Redes colaborativas
fornecem um local global onde
pessoas de todo o mundo podem
se encontrar e realizar o trabalho
"praticamente".
SOLUÇÃO DE PROBLEMAS / MAIS COMPLEXOS: Muitos problemas são tão grandes e / ou
complexos que é impraticável ou impossível resolvê-los em um único computador,
especialmente com a memória limitada do computador.
Exemplo: "Grand Challenge Problems" ( pt.wikipedia.org/wiki/Grand_Challenge ) que requer
PetaFLOPS e PetaBytes de recursos de computação.
Exemplo: motores de pesquisa / banco de dados da Web que processam milhões de
transações a cada segundo
12. Arquitetura CLUSTER
Cluster é um sistema distribuído de
computadores independentes e interligados
(computação de alto desempenho), cujo o
objetivo é suprir a necessidade de um grande
poder computacional com um conjunto de
computadores de forma transparente ao usuário.
Há uma enormidade de aplicações que só podem
ser atendidas satisfatoriamente com computação
de alto desempenho: sistemas meteorológicos,
ferramentas de mapeamento genético,
simuladores geotérmicos, programas de
renderização de imagens tridimensionais, entre
tantos outros.
13. A arquitetura CLUSTER
Desenvolvida na década de 60 pela
como uma forma de interligar grandes
mainframes, visando obter uma solução
comercialmente viável de paralelismo.
Nesta época o sistema HASP (Houston
Automated Spooling Program) da IBM e
seu sucessor o JES (Job Entry System)
proviam uma maneira de distribuir
tarefas nos mainframes interligados.
14. Existem vários tipos de CLUSTER
no entanto há alguns que são mais
conhecidos, como:
cluster de alto desempenho.
cluster de alta disponibilidade.
cluster para balanceamento de carga
15. cluster de alto desempenho.
Também conhecido como cluster de alta
performance, ele funciona permitindo
que ocorra uma grande carga de
processamento com um volume alto de
gigaflops, (flops - unidade de medida que serve para
mensurar a capacidade de processamento de um computador),
em computadores comuns e utilizando
sistema operacional gratuito, o que
diminui seu custo;
16. cluster de alta disponibilidade.
São clusters cujos sistemas conseguem
permanecer ativos por um longo
período de tempo e em plena condição
de uso; sendo assim, podemos dizer
que eles nunca param seu
funcionamento; além disso, conseguem
detectar erros se protegendo de
possíveis falhas;
17. cluster para balanceamento de carga.
Esse tipo de cluster tem como função
controlar a distribuição equilibrada do
processamento. Requer um monitoramento
constante na sua comunicação e em seus
mecanismos de redundância, pois se
ocorrer alguma falha, haverá uma
interrupção no seu funcionamento.
19. O Apache Hadoop é uma
Framework/Plataforma desenvolvida
em Java, para computação
distribuída, usada para
processamento de grandes
quantidades de informação (usando
modelos de programação simples)
Transforme o seu Raspberry PI em um cluster
Link da materia <https://pplware.sapo.pt/linux/transformar-os-seus-raspberry-pi-n-um-
cluster/>
Raspberry pi
20. Nos últimos 20 anos, as tendências
indicadas por redes cada vez mais
rápidas, sistemas distribuídos e
arquiteturas de computadores
multiprocessador (mesmo no nível
da área de trabalho) mostram
claramente que o paralelismo é o
futuro da computação .
Neste mesmo período, houve
um aumento de mais de 500,000x no
desempenho do supercomputador,
sem nenhum fim à vista.
A corrida já está para o Exascale
Computing!
Exaflop = 10 18 cálculos por
segundo
O FUTURO
21. Quem está usando computação paralela?
Ciência e Engenharia:
Historicamente, a computação
paralela foi considerada
como "o fim da computação", e tem
sido usada para
modelar problemas difíceis em
muitas áreas da ciência e
engenharia:
- Ambiente, Terra, Meio Ambiente
- Física aplicada, nuclear, partículas,
matéria condensada, alta pressão,
fusão, fotônica
- Biociência, Biotecnologia, Genética
- Química, Ciências Moleculares
- Geologia, sismologia
Industrial e Comercial:
Hoje, as aplicações comerciais
proporcionam uma força motriz igual
ou maior no desenvolvimento de
computadores mais rápidos. Essas
aplicações exigem o processamento
de grandes quantidades de dados de
maneiras sofisticadas. Por exemplo:
- "Dados grandes", bancos de dados,
mineração de dados
- Exploração de óleo
- Motores de busca na Web, serviços
de negócios baseados na web
- Imagem médica e diagnóstico
- Design farmacêutico
22. Fontes de pesquisa
Introdução
Disponivel em:
<https://www.youtube.com/watch?v
=wf0NCVrHFCk>
Pesquisado em: 27 de junho de
2017.
Computação
paralela
Disponivel em:
<https://computing.llnl.gov/tutorials/
parallel_comp/>
Pesquisado em: 27 de junho de
2017.
Cluster
Disponivel em:
<https://www.infowester.com/cluster
.php>
Pesquisado em: 27 de junho de
2017.
Cluster – alto
desempenho
Disponivel em:
<http://www.ic.unicamp.br/~ducatte/
mo401/1s2010/T2/107077-t2.pdf>
Pesquisado em: 27 de junho de
2017.
Teste em casa
Disponivel em:
<https://pplware.sapo.pt/linux/transf
ormar-os-seus-raspberry-pi-n-um-
cluster/>
Pesquisado em: 27 de junho de
2017.
Historia do
cluster
Disponivel em:
<https://pt.wikipedia.org/wiki/Cluster>
Pesquisado em: 27 de junho de 2017.