Como construir um supercomputador ligando PCs comuns em uma rede?

2

Fellows,

Eu tenho vários computadores, alguns novos, alguns antigos (eu os coleto, 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 eu sempre amei o poder dos supercomputadores, ou pelo menos, o poder das grandes máquinas).

Eu já pensei na ideia de juntar máquinas para obter uma mais poderosa. Eu corro uma LAN (rede local) 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, para um total de 30Tb de espaço (total na LAN ). Depois de ler artigos e assistir muitos vídeos sobre virtualização, questiono a possibilidade de instalar hipervisores bare-metal (tipo 1) em cada máquina, criando uma máquina virtual que se espalha pelas máquinas físicas, para instalar um sistema operacional como o Windows. no topo, para executar softwares que precisam de muitos recursos, como CPU, RAM, disco rígido, etc.

Eu imagino que deve haver uma maneira que uma máquina virtual "pense" que está instalada em uma única máquina, mas, na verdade, ela está espalhada ao longo de vários nós (como um cluster). Para a máquina virtual, ele vê o sistema como uma única máquina grande, mas, na verdade, há CPU compartilhada, RAM compartilhada e discos rígidos compartilhados.

Usando dessa maneira, podemos instalar um OP e executar, por exemplo, o Adobe After Effects ou o Adobe Premiere, que precisa de um excelente processamento paralelo (ou CPU) para fazer visualizações em tempo real ou executar softwares complexos. que poderia se beneficiar de vários processadores. Eu sei que muitas pessoas sugeririam a compra de um grande multi-cpu, xeon multi-core para processamento paralelo, mas não é o caso ... Eu gosto de pensar que com a tecnologia atual, deve haver uma maneira de unir PCs e obter mais poder computacional.

Eu vejo pessoas juntando o Raspberry pi e fazendo "supercomputadores" no youtube, com 1 teraflop, então por que não podemos fazer isso com nossas próprias máquinas, que tem LAN, ram, discos ... não é isso? a mesma coisa, só precisamos do software e como fazê-lo, não? É possível ? Como fazer isso?

Obrigado

    
por Dihelson Mendonça 13.01.2017 / 23:37

3 respostas

3

Infelizmente, por enquanto, o "supercomputador" que você deseja executar ainda não foi desenvolvido em termos de hardware e software.

Os hypervisors existentes para virtualização, como Hyper-V, VMware ESXi e XenServer, permitem a execução de máquinas virtuais em um único host ou em um cluster. O hipervisor usa CPU, RAM e armazenamento de hardware e "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 computação local CPU e RAM.

Pela minha experiência, não há software ou hardware que possa combinar CPU, RAM e armazenamento, já que não há nenhum tipo de barramento que possa servir à comunicação entre hosts de "supercomputadores".

    
por 17.01.2017 / 16:14
2

Os aplicativos são limitados àqueles que fazem uso eficiente de seus recursos. Você não pode executar o After Effects no seu "supercomputador", a menos que exista um software que saiba dividir a carga de trabalho entre todos os seus escravos.

Primeiro, você não tem o software necessário. Mesmo se você adquirir o software de virtualização necessário (a qualquer custo, ou se a empresa estiver disposto a vendê-lo para você!), Há requisitos mínimos para o cluster, que geralmente incluem especificações quase idênticas. A coisa mais próxima que encontrei é o VMware ESXi.

Em segundo lugar, há penalidades massivas dos computadores se comunicando uns com os outros, até o ponto em que qualquer ganho de desempenho essencialmente se anula. Compartilhar a RAM pela rede é muito lento para ser viável, e compartilhar uma unidade pelo iSCSI pode não ser tão confiável quanto você esperava.

Em terceiro lugar, a eficiência energética desses desktops comuns é tão baixa que você não conseguirá pagar por esse "supercomputador" dentro de um mês.

Você quer ganhar dinheiro com seus recursos atuais, mas essa não é a maneira de fazer isso. Basta vender seus computadores para comprar os de maior desempenho - até suas antiguidades venderão bem.

    
por 14.01.2017 / 00:50
2

Isso realmente pode ser feito. Costumava haver uma distro do Linux chamada ClusterKnoppix que era baseada em uma bifurcação de código aberto de um pacote ainda disponível, mas livre do AFAICS, chamado Mosix .

Do guia de administração:

MOSIX is a package that provides load-balancing by migrating processes within clusters and multi-cluster private clouds. MOSIX is intended primarily for distributed, concurrent computing, such as used for intensive computing.

O que faz:

Provides a single-system image.

– Users can login on any node and do not need to know where their programs run.

– No need to modify or link applications with special libraries.

Automatic resource discovery and workload distribution.

Mas

All nodes must have the x86 64 (64-bit) architecture. All cores of the same node must have the same speed.

Por isso, pode não se adequar aos seus requisitos específicos.

    
por 17.01.2017 / 16:45