Construindo um cluster doméstico - análise de hardware e custos [fechado]

14

Alguém conhece alguns links / livros / qualquer coisa que você possa imaginar, que descreva o processo de construção de um pequeno cluster doméstico (quando digo casa , não significa necessariamente ficar em casa - apenas significa que é relativamente pequeno e barato) para fins experimentais, com ênfase especial em que hardware seria adequado hoje e algum tipo de análise de custos?

Embora, se alguém fez isso, eu apreciaria toda a experiência que você pode compartilhar.

Torre
fonte
2
Que tipo de cluster? Cluster SQL? Web farm? Render farm? Esses são detalhes importantes ao especificar hardware.
Tsilb
1
Cálculo numérico; CFD (para não entrar em muitos detalhes) - paralelizando o código fortran.
Rook

Respostas:

8

Helmer vem à mente. :)

churnd
fonte
1
OK, essa é uma página realmente interessante e faz com que meu pobre cluster do DeCeleron de 4 nós pareça insignificante.
Bill B
Ótima página! Amo o gabinete IKEA :) (talvez não a melhor solução, mas bonito não obstante)
Rook
Para explicar, este é um farm de renderização baseado em CPU. São 6 máquinas Intel Quad Core instaladas em um arquivo da IKEA (o nome do produto é Helmer). Aparentemente, o gabinete possui furos (não pela IKEA) na parte traseira que permitem a montagem de uma fonte de alimentação e ventilador em 6 pontos.
dlamblin
4

Houve alguns clusters da Ikea em destaque no Hack A Day:

Drew Stephens
fonte
3

Confira os livros Beowulf Cluster Computing de Thomas Sterling (um para Linux e outro para Windows). Eles informam tudo o que você precisa saber sobre o uso do MPI para que seus nós conversem.

Um amigo e eu construímos um cluster de 8 caixas usando um hardware realmente ruim e executamos o Windows XP nelas. Pareciam caixas Pentium I - 90 MHz. Bem abaixo das especificações necessárias para o Windows, mas funcionou bem. Também executamos o SQL Server 2000 nelas (também bem abaixo das especificações recomendadas) e fizemos algumas modelagens negras dos preços das opções de ações.

É difícil recomendar que tipo de hardware seria adequado sem saber o que você deseja fazer com seu cluster. Mas o ponto principal é que você pode criar um cluster de quase tudo.

Nathan DeWitt
fonte
Você não acreditaria, eu pedi exatamente esse título ontem! Agora, esperando que chegue :) Pentium 90 - uau, isso é antigo. Como funcionou, suave ou com falhas? Você poderia fazer uma comparação com algum equivalente moderno? Essa btw é realmente uma boa idéia para o que estou tentando fazer, já que esse tipo de hardware hoje em dia pode ser praticamente grátis (de qualquer maneira). Estou tentando construí-lo com o objetivo de paralelizar algum código, então estou experimentando ao mesmo tempo o código e a parte do hardware. É um experimento de aprendizado para ver como será.
Rook
1
O custo de operação de hardware antigo é alto, em termos de potência / trabalho; várias máquinas de 90 MHz usarão muita eletricidade para produzir o equivalente ao trabalho de uma máquina única mais eficiente. Estou interessado no seu projeto, mas ... saiba que ele pode ser caro de maneiras interessantes ... =]
David diz para repor Monica
o desempenho foi bom. era um projeto para a escola, e nosso hardware era o que a escola tinha por perto. também não nos preocupamos com questões de energia, mas ricebowl está absolutamente correto. eles eram monstros barulhentos.
187 Nathan DeWitt
@ricebowl - Neste ponto, isso não é um problema. 90Mhz são uma boa ideia, já que os colocamos por aí, então não há custo por lá. Elec. também não é um problema, já que a empresa paga, a energia usada pelos computadores é insignificante lá. Neste ponto, estou aprendendo os fundamentos; sempre é possível obter novo hardware, se necessário.
Rook
@ Nathan DeWitt - sonoridade também não é um problema. Eu não me importo com o som (sempre me pareceu reconfortante), e ninguém está perto deles de qualquer maneira.
Rook
2

Uma alternativa para ter muitos nós de cluster físicos é criar máquinas virtuais. Você teria apenas uma ou duas máquinas físicas reais, mas poderia simular ter muito mais nós. Isso funcionaria bem para criar, aprender e usar menos recursos (espaço, energia, $$$).

Isso não forneceria muita análise de custo, mas o ajudaria a começar. O tipo de configuração do cluster dependerá do tipo de trabalho que você deseja criar para ele. Você pode muitos nós pequenos ou ter apenas alguns nós poderosos. Existem ambientes de memória compartilhada e não compartilhada a serem considerados também. Que tipo de programas paralelos você deseja criar? Quanto mais nós físicos você tiver, mais espaço, energia, refrigeração e interconectividade de rede você precisará considerar. Às vezes, apenas um grande computador é o caminho a percorrer (e ambientes de memória compartilhada são mais fáceis de programar para IMHO).

Recentemente, comecei a jogar com um cluster, construindo algumas caixas P4 aleatórias, ubuntu e LAM-MPI. Definitivamente, foi uma experiência de aprendizado.

Na verdade, eram alguns laptops e torres p4 empilhados juntos em uma garagem. Era gueto, mas eu só queria aprender. Acabei de usar uma rede Ethernet de 100 Mbps. Eu escolhi o ubuntu, porque não queria lidar com muita configuração de hardware das caixas. O Ubuntu tinha muitos drivers que eu precisava. Eu precisava de um ambiente Linux, pois os aplicativos que escrevi para ele eram aplicativos baseados em C com interfaces MPI. Eu tentei replicar o que eu tinha usado antes. Foi tudo misc. hardware, nada padrão. A maioria dos clusters possui hardware exato para que você possa adicionar e remover nós em um piscar de olhos.

Troggy
fonte
Bem, eu tenho um grande número de estações de trabalho antigas à minha disposição. Desde os primeiros pentiums até os 266 Mhz. Quarto e energia, eu tenho bastante. O barulho também não é um problema, não está próximo das pessoas (sim, caso você esteja se perguntando, eu não me considero um membro da raça humana :) Novos equipamentos sempre podem ser adquiridos mais tarde, se necessário, mas por enquanto eu estou tentando evitar custos desnecessários, se eu puder, jogando com eles. Estou tentando paralelizar algum código fortran (não antigo) (CFD, FVM). Nesse ponto, eu sou mais intersted em hardware de montagem, sistema operacional rodando princípios, e recebendo um aperto geral sobre as coisas
Rook
A virtualização é de pouca utilidade se for sobre cálculos numéricos vinculados à CPU.
Tadeusz A. Kadłubowski 16/08/09
Se não estou perguntando muito, como você os conectou (não apenas os internos, mas onde os colocou (torre grande? Problemas de refrigeração?))? Por que ubuntu?
Rook
@Idigas Adicionado um parágrafo à minha resposta.
Troggy 16/08/09
1

Dependendo do que você está tentando fazer, considere desenvolver seu sistema em um cluster de máquinas virtuais. O uso de uma solução de virtualização de SO, como o OpenVZ ou Virtuozzo da Parallel ou Solaris Containers, permitirá escalar enormes densidades em comparação com a virtualização completa do sistema (por exemplo, VirtualBox / VirtualPC / Xen / VMWare). Então, quando você realmente precisar implantar o sistema para obter algum desempenho, execute-o "na nuvem" no EC2 da Amazon ou similar.

timday
fonte
Eu esperava reutilizar algum hardware mais antigo que eu já tinha disponível neste momento, então a virtualização não é tão atraente para mim.
Rook
1

Eu começaria examinando pessoalmente os projetos LittleFE ( http://littlefe.net/ ) ou CD de inicialização ( http://bccd.net/ ). Veja também o projeto Ubuntu Cloud ( http://www.ubuntu.com/cloud ).

Mais ou menos, qualquer hardware deve funcionar. Eu estaria inclinado a olhar para algum tipo de acordo ou máquinas saindo do contrato de locação para adquirir algum hardware barato.

Warren
fonte
0

Dê uma olhada no Rocks, que é uma distribuição de cluster que facilita a criação de cluster. Ele também aumenta para pelo menos alguns nós com hound.

Jimmy Hedman
fonte