![Como construir um supercomputador conectando PCs comuns em uma rede?](https://rvso.com/image/1518639/Como%20construir%20um%20supercomputador%20conectando%20PCs%20comuns%20em%20uma%20rede%3F.png)
Companheiros,
Tenho vários computadores, alguns novos, outros antigos ( coleciono-os, desde o meu primeiro, que tem 2Kbytes de RAM, de 1979 ). A coleção está ficando enorme, mas o propósito desta pergunta está relacionado ao fato de que sempre adorei o poder dos supercomputadores, ou pelo menos, o poder das grandes máquinas).
Já pensei na ideia de unir máquinas para conseguir uma mais potente. Eu executo uma LAN (rede local) de 1Gbit apeed, onde existem 4 máquinas intel i7 2600k rodando a 4.8Ghz watercooler, cada uma com 16Mb de RAM, SSD e discos rígidos comuns, totalizando 30Tb de espaço (total na LAN ). Depois de ler artigos e assistir a muitos vídeos sobre virtualização, questiono a possibilidade de instalar hipervisores bare metal (Tipo 1) em cada máquina e, em seguida, criar uma máquina virtual que se espalhe pelas máquinas físicas, para que eu possa instalar um sistema operacional como o Windows ainda por cima, para rodar softwares que necessitam de muitos recursos, como CPU, RAM, disco rígido, etc.
Imagino que deva haver uma maneira de uma máquina virtual "pensar" que está instalada em uma única máquina, mas na verdade está espalhada por vários nós (como um cluster). Para a máquina virtual, ela vê o sistema como apenas uma grande máquina, mas na verdade, há CPU compartilhada, RAM compartilhada e discos rígidos compartilhados.
Desta forma, poderíamos instalar um OP e rodar, por exemplo, Adobe After Effects, ou Adobe Premiere, que precisa de um excelente processamento paralelo (ou potência de CPU) para fazer pré-visualizações em tempo real, ou para rodar software complexo que poderia se beneficiar de vários processadores. Eu sei que muitas pessoas sugeririam comprar uma grande máquina xeon multi-cpu e multi-core para processamento paralelo, mas não é o caso...Gosto de pensar que com a tecnologia atual, deve haver uma maneira de unir PCs e obter mais poder computacional.
Vejo gente juntando o Raspberry pi e fazendo "supercomputadores" no youtube, com tipo 1 teraflop, então por que não podemos fazer isso com nossas próprias máquinas, que tem LAN, ram, discos... não é a mesma coisa , só precisamos do software e como fazer, não? É possível ? Como fazer isso ?
Obrigado
Responder1
Infelizmente, por enquanto, o “supercomputador” que você deseja rodar ainda não foi desenvolvido em termos de hardware e software.
Os hipervisores existentes para virtualização, como Hyper-V, VMware ESXi, XenServer, permitem a execução de máquinas virtuais em um único host ou em um cluster. O hipervisor pega CPU, RAM e armazenamento de hardware e os “converte” em recursos virtuais para executar VMs. Para armazenamento, ele pode ser configurado em volumes compartilhados sendo espelhados entre hosts usando conectividade de rede para transmissão de dados (como iSCSI SAN, VMware VSAN, StarWind VSAN etc.), mas ainda assim cada VM utiliza apenas CPU e RAM de computação local.
Pela minha experiência, não existe software ou hardware que possa combinar CPU, RAM e armazenamento, uma vez que não existe nenhum tipo de barramento que possa servir a comunicação entre hosts de "supercomputadores".
Responder2
Os aplicativos são limitados àqueles que fazem uso eficiente dos recursos fornecidos. Você não pode executar o After Effects em seu "supercomputador", a menos que exista um software que saiba como dividir a carga de trabalho entre todos os seus escravos.
Primeiro, você não tem o software necessário. Mesmo que você adquira o software de virtualização necessário (a qualquer custo, ou se a empresa estiver disposta a vendê-lo para você!), existem requisitos mínimos para o cluster, que geralmente incluem especificações quase idênticas. A coisa mais próxima que consegui encontrar foi o VMware ESXi.
Em segundo lugar, há penalidades enormes para os computadores que se comunicam entre si, a ponto de qualquer ganho de desempenho ser essencialmente anulado. O compartilhamento de RAM pela rede é muito lento para ser viável, e o compartilhamento de uma unidade por iSCSI pode não ser tão confiável quanto você esperava.
Terceiro, a eficiência energética desses desktops comuns é tão baixa que você não conseguiria pagar por esse “supercomputador” dentro de um mês ou mais.
Você quer ganhar dinheiro com seus recursos atuais, mas esta não é a maneira de fazer isso. Basta vender seus computadores para comprar computadores de maior desempenho – até mesmo suas antiguidades venderão bem.
Responder3
Na verdade, isso pode ser feito. Costumava haver uma distribuição Linux chamada ClusterKnoppix que era baseada em um fork de código aberto de um pacote Linux proprietário ainda disponível, mas gratuito, AFAICS chamadoMosix.
No guia do administrador:
MOSIX é um pacote que fornece balanceamento de carga por meio da migração de processos dentro de clusters e nuvens privadas com vários clusters. O MOSIX destina-se principalmente à computação distribuída e simultânea, como a usada para computação intensiva.
O que faz:
Fornece uma imagem de sistema único.
– Os usuários podem fazer login em qualquer nó e não precisam saber onde seus programas são executados.
– Não há necessidade de modificar ou vincular aplicativos a bibliotecas especiais.
Descoberta automática de recursos e distribuição de carga de trabalho.
Mas
Todos os nós devem ter a arquitetura x86 de 64 (64 bits). Todos os núcleos do mesmo nó devem ter a mesma velocidade.
Portanto, pode não atender aos seus requisitos específicos.