Vetores
- O conjunto de arquiteturas computacionais pode ser dividido em três grupos básicos: arquiteturas seqüenciais arquiteturas com mecanismos de paralelismo de baixo nível arquiteturas paralelas (!) Definição (Duncan, 1990) “Uma arquitetura paralela fornece uma estrutura explícita e de alto nível para o desenvolvimento de soluções utilizando o processamento paralelo, através da existência de múltiplos processadores que cooperam para resolver problemas através de execução concorrente” Existem muitas maneiras de se organizar computadores paralelos. Para que se possa visualizar melhor todo o conjunto de possíveis opções de arquiteturas paralelas, é interessante classificá-las. Classificação de Flynn: - Fluxos de instruções e fluxos de dados - 4 classes SISD - Single Instruction/Single Data stream corresponde aos computadores seqüenciais convencionais
SIMD - Single Instruction/Multiple Data stream corresponde aos processadores matriciais/vetoriais
MISD – Multiple Instruction/Single Data: Não existem computadores construídos que se enquadrem nesta categoria MIMD - Multiple Instruction stream over a Multiple Data stream: Esta classe engloba a maioria dos computadores paralelos
As arquiteturas MIMD ainda podem ser divididas em duas subcategorias: arquiteturas de memória compartilhada arquiteturas de memória distribuída
Memória Compartilhada: todos os processadores possuem acesso a uma memória compartilhada multiprocessadores comunicação: através da memória compartilhada acesso: UMA, NUMA
pontos positivos: localidade memória/processador compartilhamento de recursos semelhante a uma arquitetura seqüencial programação mais simples pontos negativos gargalo no barramento de memória consistência de cache
Memória Distribuída: multicomputadores neste tipo de arquitetura, cada nó tem seu processador, sua unidade de controle e sua memória