A programação paralela é muito mais adequada para modelar, simular e entender fenômenos do mundo real. Por exemplo:
Na teoria, utilizar mais recursos em uma tarefa irá reduzir seu tempo de realização, com potenciais economias em capital (lembre-se que estamos na era da computação em nuvem e tarefas demoradas custam dinheiro). Além disso, alguns sistemas só fazem sentido (e funcionam) caso sejam utilizados vários recursos paralelos, um exemplo são os motores de busca e bancos de dados que processam milhões de informações por segundo. Imagine se você tivesse que esperar um motor de busca criado de forma sequencial? Teriam alguns milhões de usuários na sua frente, e você demoraria um pouco mais para achar aquela resposta salvadora no StackOverflow.
Os computadores atuais seguem uma arquitetura paralela, com múltiplos processadores/cores. Um sistema paralelo é voltado especificamente para hardware paralelo com múltiplos cores, threads e etc. Na maioria das vezes, programas seriais (como aquele sistema de cadastro de cliente que você fez mês passado) desperdiçam poder de computação.
Se olharmos para os últimos 20 anos, as redes cada vez mais rápidas, os sistemas distribuídos, e as arquiteturas multiprocessador (mesmo em desktops comuns) claramente mostram que o paralelismo é o futuro mais próximo da computação.
Neste mesmo período (segundo esse artigo aqui: "Overview of Recent Supercomputers", do A.J. van der Steen e Jack Dongarra) ocorreu um aumento de pelo menos 500,000x na performance de supercomputadores, sem um limite à vista atualmente.
Se isso fosse uma corrida de Fórmula 1, atualmente os carros estariam na exascale km/h. No caso dos computadores isso quer dizer:
Historicamente, a computação paralela tem sido considerada o "alto nível da computação", e tem estado presente em muitas aplicações das Ciências e Engenharia:
Atualmente, a presença da computação paralela atingiu também a indústria e o comércio, com aplicações que exigem o processamento de quantidades de dados cada vez maiores, de maneiras sofisticadas. Por exemplo:
Os gráficos abaixos, obtidos no site Top500.org, mostram como a computação paralela está sendo utilizada em uma variedade de aplicações e quais os principais países que estão dominando esta área:
Quem é de computação certamente já deve ter ouvido falar de John von Neumann (von Neumann inclusive era o nome de um servidor em um datacenter que estagiei na década passada, enfim, wtf?!). Em 1945, esse cara publicou um artigo (aqui: First Draft of a Report on the EDVAC), onde foi o primeiro autor a descrever os requisitos gerais para um computador eletrônico. Neste computador, também conhecido como "stored-program computer", instruções de programas e dados eram armazenados em uma memória eletrônica. Esta característica diferenciava o EDVAC de computadores anteriores, os quais era programados através de fiação rígida.
Desde então, virtualmente, todos os computadores tem seguido a lógica que von Neumann propôs lá em 1945:
A unidade de controle busca instruções/dados da memória, decodifica instruções e então sequencialmente coordena operações para completar a tarefa programada.
Mas quem se importa com isso? Então, sei lá, mas acontece que computadores paralelos atualmente ainda seguem este design, apenas multiplicando as unidades. A arquitetura básica e fundamental permanece a mesma.