Sim, existem vários sistemas para compartilhar o poder de computação entre vários computadores. Esses sistemas geralmente se enquadram no guarda -chuva de
computação distribuída . A abordagem usada depende muito do tipo de tarefa e do nível de controle desejado. Aqui estão alguns exemplos:
*
Computação de grade: Isso envolve o uso de um grande número de computadores geograficamente dispersos (geralmente pertencentes a diferentes organizações ou indivíduos) para resolver um único problema grande. Os exemplos incluem seti@home (pesquisando inteligência extraterrestre) e dobramento@home (simulando a dobragem de proteínas). Eles geralmente usam um modelo de trabalho mestre em que um servidor central distribui tarefas para muitos nós do trabalhador.
*
Computação de cluster: Isso usa uma coleção de computadores interconectados trabalhando juntos como um único sistema. Esses computadores geralmente estão localizados próximos um do outro (por exemplo, em um data center) e têm interconexões de alta velocidade. Isso permite maior coordenação e comunicação mais rápida entre nós do que a computação da grade. Os clusters são comumente usados para computação de alto desempenho (HPC), executando grandes simulações ou manuseio de conjuntos de dados maciços.
*
Computação em nuvem: Embora não seja estritamente "compartilhando" no sentido de controle direto sobre máquinas individuais, plataformas de computação em nuvem como AWS, Azure e Google Cloud permitem que você distribua cargas de trabalho em uma enorme rede de servidores. Você aluga recursos de computação (máquinas virtuais, contêineres etc.) conforme necessário e a plataforma gerencia a distribuição e a alocação de recursos.
*
computação ponto a ponto (P2P): Isso envolve a distribuição de tarefas em uma rede de computadores igualmente capazes, com cada computador atuando como um cliente e um servidor. O BitTorrent é um exemplo bem conhecido do compartilhamento de arquivos P2P, mas também pode ser adaptado para outras tarefas computacionais.
*
Computação voluntária: Esta é uma forma especializada de computação de grade que se baseia no poder de computação voluntário dos computadores de usuários individuais. Seti@home e dobring@home são exemplos excelentes.
O sistema específico escolhido depende de fatores como:
*
A natureza da tarefa: Algumas tarefas são facilmente paralelizáveis, enquanto outras não.
*
O tamanho e a complexidade da tarefa: Tarefas maiores e mais complexas exigem mais potência de computação e podem se beneficiar da computação de grade ou cluster.
*
O nível de coordenação necessário: As tarefas bem coordenadas precisam de um cluster, enquanto tarefas vagamente coordenadas podem usar uma grade.
*
A distribuição geográfica dos computadores: A computação de grade é mais adequada para computadores geograficamente dispersos, enquanto a computação de cluster é melhor para computadores nas proximidades.
*
Orçamento e infraestrutura: A computação em nuvem fornece escalabilidade, mas pode ser cara; Os clusters exigem investimentos iniciais significativos em hardware e networking.
Em suma, não há um único sistema, mas uma série de abordagens para compartilhar o poder de computação, cada um com seus próprios pontos fortes e fracos.