Arquitetura Paralela
A computação paralela faz uso de múltiplos elementos de processamento simultaneamente para resolver um problema. Isso é possível ao quebrar um problema em partes independentes de forma que cada elemento de processamento pode executar sua parte do algoritmo simultaneamente com outros. Os elementos de processamento podem ser diversos e incluir recursos como um único computador com múltiplos processadores, diversos computadores em rede, hardware especializado ou qualquer combinação dos anteriores. Mesmo em computadores com apenas um processador com um núcleo, o código escrito para ser paralelo é executado mais rápido que o seqüencial.
Existem diferentes formas de computação paralela: em bit, instrução, de dado ou de tarefa. Temos que escolher que partes do programa utilizarão código que serão executados em paralelo. Outras preocupações que devemos ter são quando as informações tiverem que ser processadas em uma determinada ordem ou definir até que nível de paralelismo será utilizado.
Diferentemente da abordagem tradicional para multitarefa, onde você pode criar e gerenciar um conjunto de tópicos em seu código, o novo modelo de programação paralela permite você se concentrar nas tarefas que você precisa para realizar e permite ao runtime criar e gerenciar as threads no seu lugar. Com isso, o desenvolvedor não precisa se preocupar em como será executado o código, se focando apenas na tarefa que precisa executar. Computadores paralelos podem ser classificados de acordo com o nível em que o hardware suporta paralelismo. Computadores com multinúcleos ou multiprocessadores possuem múltiplos elementos de processamento em somente uma máquina, enquanto clusters, MPP e grades usam múltiplos computadores para trabalhar em uma única tarefa.
Arquiteturas paralelas especializadas às vezes são usadas junto com processadores tradicionais, para acelerar tarefas específicas.
Programas de computador paralelos são mais difíceis de programar