Aula 2 â Arquiteturas Paralelas - INF-Unioeste
Aula 2 â Arquiteturas Paralelas - INF-Unioeste
Aula 2 â Arquiteturas Paralelas - INF-Unioeste
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Aula</strong> 2 – <strong>Arquiteturas</strong> <strong>Paralelas</strong><br />
<br />
- O conjunto de arquiteturas computacionais pode ser dividido em três grupos básicos:<br />
arquiteturas seqüenciais<br />
arquiteturas com mecanismos de paralelismo de baixo nível<br />
arquiteturas paralelas (!)<br />
Definição (Duncan, 1990)<br />
“Uma arquitetura paralela fornece uma estrutura explícita e de alto nível para o<br />
desenvolvimento de soluções utilizando o processamento paralelo, através da<br />
existência de múltiplos processadores que cooperam para resolver problemas através<br />
de execução concorrente”<br />
<br />
Existem muitas maneiras de se organizar computadores paralelos. Para que se possa<br />
visualizar melhor todo o conjunto de possíveis opções de arquiteturas paralelas, é<br />
interessante classificá-las.<br />
<br />
Classificação de Flynn:<br />
• - Fluxos de instruções e fluxos de dados<br />
• - 4 classes<br />
• SISD - Single Instruction/Single Data stream<br />
corresponde aos computadores seqüenciais convencionais<br />
• SIMD - Single Instruction/Multiple Data stream<br />
corresponde aos processadores matriciais/vetoriais<br />
• MISD – Multiple Instruction/Single Data:<br />
Não existem computadores construídos que se enquadrem nesta categoria<br />
• MIMD - Multiple Instruction stream over a Multiple Data stream:<br />
Esta classe engloba a maioria dos computadores paralelos
As arquiteturas MIMD ainda podem ser divididas em duas subcategorias:<br />
arquiteturas de memória compartilhada<br />
arquiteturas de memória distribuída<br />
<br />
Memória Compartilhada:<br />
todos os processadores possuem acesso a uma memória compartilhada<br />
• multiprocessadores<br />
• comunicação: através da memória compartilhada<br />
• acesso: UMA, NUMA<br />
<br />
<br />
pontos positivos:<br />
• localidade memória/processador<br />
• compartilhamento de recursos<br />
• semelhante a uma arquitetura seqüencial<br />
• programação mais simples<br />
pontos negativos<br />
• gargalo no barramento de memória<br />
• consistência de cache<br />
<br />
Memória Distribuída:<br />
multicomputadores<br />
neste tipo de arquitetura, cada nó tem seu processador, sua unidade de controle e sua<br />
memória local<br />
cada processador pode executar um processo independente sobre seus próprios dados<br />
Estrutura de rede é fundamental<br />
comunicação: troca de mensagens<br />
pontos positivos:<br />
• compartilhamento de uso (vários usuários simultaneamente)<br />
• possibilidade de emular outras arquiteturas<br />
• escalabilidade<br />
pontos negativos:<br />
• comunicação
• sincronização<br />
• uso ineficiente de memória<br />
• tipo de acesso: NORMA<br />
<br />
Tendências atuais na construção de máquinas paralelas:<br />
De acordo com o TOP 500:<br />
• Constelations (SMP) 6%<br />
• MPP 22%<br />
• Clusters 72%<br />
<br />
<br />
<br />
<br />
<br />
Processadores vetoriais<br />
• poucos processadores vetoriais<br />
• memória compartilhada<br />
• já não aparecem no top 500<br />
SMP<br />
• processadores de uso geral<br />
• memória compartilhada<br />
• coerência de cache (!)<br />
MPP (Massively Parallel Processors)<br />
• multicomputador constituído de milhares de processadores de uso geral<br />
• rede proprietária<br />
• milhares de nós<br />
• DOE/NNSA/LLNL (USA) eServer Blue Gene Solution(IBM) 131072 procs<br />
Clusters<br />
• evolução das redes de estações de trabalho<br />
• máquinas e SO otimizados<br />
• redes tradicionais de baixa latência<br />
Grids<br />
• clusters geograficamente distribuídos (?)<br />
Exercício<br />
Quais são as duas possibilidades para se construir máquinas com vários processadores? Que<br />
nome é dado a cada uma delas? Quais as vantagens e desvantagens de cada uma?