A computação paralela tem sido amplamente utilizada desde os anos 2000
quando a pioneira IBM (também criadora do primeiro computador pessoal) lançou seu primeiro processador de múltiplos núcleos o IBM Power4, lançado em 2001. Entretanto, o conceito já existia há vários anos, desde o final da década de 1950 quando já se temia que um computador único não iria ser capaz de atender à crescente demanda por poder de processamento que estava surgindo por conta de “n” fatores como, por exemplo, na física quântica, modelagem climática, genômica e até em jogos.
Basicamente, o que a computação paralela faz é quebrar uma tarefa grande e
complexa em partes menores no intuito de acelerar o tratamento de um grande volume de dados diminuindo o tempo de processamento. Isso ocorre, pois na computação paralela existem vários computadores interligados e cada um deles possui vários processadores (múltiplos núcleos) que trabalhando paralelamente de forma independente solucionam estas partes do mesmo problema e depois juntam estes dados em um único computador para exibição dos resultados. Em geral, quanto maior o número de núcleos e a frequência, melhor o desempenho. Um ótimo exemplo da necessidade da computação paralela seria um estudo detalhado do clima, mais precisamente do aquecimento global onde, qualquer que fosse o instituto que desejasse analisar esse grande volume de dados se veria obrigado a usar essa tecnologia que é composta por dois tipos distintos; os Multiprocessadores (Multiprocessors) onde vários processadores estão acessando fisicamente uma única memória conhecida como memória compartilhada, ideal para cargas de trabalho que requerem comunicação frequente entre os processadores e compartilhamento de dados e os do tipo que utilizam uma Memória Distribuída, como é o caso dos Multicomputadores (Multicomputers) ou Clusters que por sua vez, possuem características próprias como modelo e velocidade da CPU, podem terminar suas partes da tarefa antes dos demais e assim ficarem ociosos por um tempo, entretanto, como cada computador tem sua própria memória e pode executar tarefas separadamente isso não afetaria os demais e seriam ideais quando tal como na sequência de Fibonacci onde para calcularmos cada número da sequência (1, 1, 2, 3, 5, 8, 13…) dependemos do resultado dos dois termos anteriores, um algoritmo que calcule a série não é naturalmente paralelizável e não tem ganhos de desempenho significativos em um chip multi-core.
Desta forma, o real desafio é saber escolher e estruturar o tipo correto de
computador paralelo para cada situação, uma vez que os multiprocessadores são indicados para tarefas que requerem comunicação frequente entre processadores e compartilhamento de memória, algo comum em áreas como simulações de física quântica enquanto os multicomputadores são ideais para cargas de trabalho escaláveis e tarefas que exigem isolamento de tarefas como, por exemplo, aplicações de modelagem climática e análise genômica que requerem controle preciso do ambiente de execução.