Arquitectura de computadores
Tradicionalmente, o computador tem sido visto como uma máquina sequencial. Esta visão nunca foi completamente verdadeira. Computação paralela é uma forma de computação em que vários cálculos são realizados simultaneamente,[] operando sob o princípio de que grande problemas geralmente podem ser divididos em problemas menores, que então são resolvidos concorrentemente (em paralelo). Existem diferentes formas de computação paralela: em bit, instrução, de dado ou de tarefa. A técnica de paralelismo já é empregada por vários anos, principalmente na computação de alto desempenho, mas recentemente o interesse no tema cresceu devido às limitações físicas que previnem o aumento de frequência de processamento. []Com o aumento da preocupação do consumo de energia dos computadores, a computação paralela se tornou o paradigma dominante nas arquiteturas de computadores sob forma de processadores multinúcleo.[] É uma Técnica baseada na utilização de vários processadores para aumentar o desempenho de um sistema computacional. Os processadores executam instruções em paralelo, suportando uma maior carga de trabalho.
Organizações mais comuns:
Multiprocessadores simétricos(SMP), agregados (clusters) e sistemas com acesso não-uniforme à memória (NUMA)
SMP: múltiplos processadores similares em um mesmo computador, conectados por um barramento ou outra forma de circuito de conexão.
Dificuldade na coerência de cache: cada processador tem sua cache, o que torna possível que um mesmo dado esteja presente em mais de uma cache; se o dado for alterado em uma das caches, a MP e as demais caches terão uma versão inválida deste dado necessita de um protocolo de coerência.
Cluster: conjunto de computadores completos, conectados entre si através de uma estrutura de rede, trabalhando juntos como se fosse um recurso computacional unificado, gerando a ilusão de ser um único equipamento.
O desempenho e disponibilidade podem variar em decorrência da disponibilidade e desempenho