Quais são os diferentes tipos de tecnologia de processamento paralelo?
O processamento paralelo é um tipo de processamento de computador no qual grandes tarefas de computação são divididas em subtarefas menores que são processadas simultaneamente ou em paralelo, em vez de sequencialmente. Essa tecnologia é amplamente utilizada na computação moderna, especialmente para problemas avançados, como os tratados nas ciências naturais. Exemplos de tecnologia de processamento paralelo em um único dispositivo incluem multiprocessamento simétrico e processamento multicore. Vários computadores também podem ser conectados para trabalhar em paralelo através de métodos como computação distribuída, clusters de computadores e computadores paralelos em massa.
Um multiprocessador simétrico é um computador com uma única instância principal comum de memória e sistema operacional vinculada a vários processadores idênticos. Os processadores têm os mesmos recursos e estão vinculados a uma memória comum; portanto, as tarefas podem ser facilmente atribuídas ou reatribuídas conforme necessário para equilibrar a carga de trabalho entre eles. No processamento multicore, cada processador contém pelo menos duas unidades de processamento central (CPUs), chamadas núcleos, responsáveis pela leitura e execução das instruções. Essencialmente, um processador multicore é na verdade vários processadores em um único componente integrado. Isso permite uma comunicação mais rápida e eficiente entre os núcleos de processamento, em comparação com os computadores com multiprocessadores nos quais cada CPU é um componente separado.
Os computadores multiprocessadores são amplamente utilizados em aplicativos científicos e comerciais. É menos comum em sistemas de computadores pessoais, que geralmente são de design sem processador, embora os multiprocessadores tenham se tornado mais comuns no mercado consumidor. O software de computador deve ser projetado especificamente para computadores com multiprocessadores para aproveitar ao máximo os benefícios que ele pode oferecer e, como resultado, esse tipo de software geralmente apresenta problemas de desempenho em um computador com processador único. Da mesma forma, os programas escritos com um único processador em mente geralmente obtêm apenas benefícios limitados com o multiprocessamento, porque não foram projetados para tirar proveito dele.
A tecnologia de processamento paralelo distribuído usa vários computadores independentes que trabalham em diferentes partes de um problema em paralelo, interconectados via Internet ou uma rede interna para que eles possam se comunicar. Esse tipo de tecnologia de processamento paralelo pode ser usado com computadores fisicamente distantes um do outro, embora nem sempre seja esse o caso. Juntos, os computadores vinculados formam o que é chamado de grade computacional.
As grades computacionais podem ser muito grandes, incorporando potencialmente milhares de computadores que podem estar espalhados por todo o mundo. Esses computadores também podem estar trabalhando com problemas não relacionados ao mesmo tempo, com tarefas sendo trabalhadas pela grade distribuídas entre computadores de acordo com a capacidade de processamento de reposição que cada um possui naquele momento. A computação em grade difere da maioria das outras tecnologias paralelas modernas porque uma única grade geralmente inclui uma variedade diversificada de computadores com capacidades variadas, em vez de um grupo de unidades idênticas.
Clusters de computadores são uma forma de tecnologia de processamento paralelo na qual vários computadores vinculados, geralmente com capacidades idênticas, trabalham juntos como uma única unidade. Diferentemente do multiprocessamento simétrico, que usa vários processadores que compartilham uma memória e um sistema operacional comuns, cada unidade individual em um cluster é um computador autônomo completo. Geralmente, eles estão no mesmo local geográfico e estão conectados a uma rede local. Alguns computadores são criados especificamente para uso em clusters de computadores, mas também podem ser formados vinculando computadores que foram originalmente projetados para operar de forma autônoma.
Computadores paralelos maciços têm algumas semelhanças com computadores de cluster, porque eles também são compostos de vários computadores unidos, mas são muito maiores e geralmente contêm centenas ou milhares de nós. Eles também têm seus próprios componentes especializados, ligando os computadores individuais que o compõem, enquanto os agrupamentos de computadores são unidos por hardware padrão e comumente conhecido como componentes comuns. Os computadores massivamente paralelos mais avançados podem ser verdadeiramente colossais, contendo dezenas de milhares de computadores individuais preenchendo milhares de metros quadrados de espaço, todos trabalhando juntos. A maioria dos supercomputadores avançados do mundo, usados para cálculos complexos em áreas como astrofísica e modelagem climática global, são desse tipo.