O processamento paralelo e serial descreve se um sistema de computador pode separar tarefas computacionais para usar vários processadores ou núcleos simultaneamente ou se depende da conclusão de tarefas com um único núcleo de processador. Todos os processadores individuais de computadores de consumo eram processadores seriais antes de meados de 2005, quando a Intel lançou o primeiro processador dual-core de consumo. Vários processadores de núcleo único podem trabalhar juntos para lidar com o processamento serial por meio de clusters de computadores paralelos em rede ou executando vários processadores em uma placa-mãe.
Computadores são máquinas multitarefa
Um computador moderno típico executa de dezenas a centenas de tarefas a qualquer momento; no entanto, cada núcleo está trabalhando apenas em um processo de cada vez. O processador constantemente salta entre os diferentes "threads" de processamento ou "streams de instrução" para executar vários programas simultâneos sob uma ilusão em tempo real chamada simultaneidade. O computador acaba desperdiçando ciclos de processador ao alternar entre os trabalhos e não funciona com a eficiência ideal ao realizar várias tarefas ao mesmo tempo.
Executando tarefas em paralelo
Um ambiente de processamento paralelo pode processar tarefas mais rapidamente quando os programas são projetados para usar processamento paralelo. Programas seriais alinham todas as instruções em arranjo serial e fazem interface com o processador usando um único thread. Os programas paralelos funcionam dividindo as tarefas em partes individuais que podem ser divididas entre vários núcleos de processador e remontadas como tarefas concluídas. Processadores paralelos podem multiplicar o poder de processamento de processadores seriais com clocks semelhantes com código escrito corretamente. No entanto, um processador serial com uma velocidade de clock mais alta pode superar os processadores paralelos ao trabalhar com um único thread.
Processamento em série em ação
Programas escritos para processamento serial usam apenas um núcleo por vez e processam tarefas em ordem sequencial. Um processador serial funciona como ter uma dúzia de caixas abertas em um supermercado com um caixa funcionando entre as diferentes filas, verificando todos ao mesmo tempo. O caixa, ou CPU, pula de raia em raia verificando alguns itens de cada vez antes de passar para o próximo com o objetivo de terminar todos os pedidos ao mesmo tempo.
Processamento paralelo em ação
A ideia por trás dos processadores paralelos é que mais núcleos que trabalham juntos levarão a um melhor desempenho. Um processador paralelo se comporta como se tivesse mais de um caixa operando uma dúzia de caixas. Se um programa for configurado para tirar proveito do processamento paralelo, o "cliente" pode dividir seu pedido em grupos menores e usar várias filas de caixa ao mesmo tempo.
Processadores paralelos expandem possibilidades
Em 2007, a Nvidia usou pela primeira vez o processamento paralelo para avançar na tecnologia gráfica. As unidades de processamento gráfico usam processamento paralelo em um nível que supera o desempenho do processamento serial ao fazer pequenos cálculos. Enquanto as CPUs tendem a ter um número de núcleos facilmente contável, as GPUs podem ter milhares de núcleos de menor potência que são mais adequados para executar cálculos simultâneos mais simples. As GPUs são comumente usadas para gráficos, mas podem fazer outros cálculos para coisas como classificação e álgebra de matriz.