Houve alguns artigos circulando on-line nos últimos anos sobre a construção de um cluster de computadores em casa - aqui, por exemplo.
O Pi me parece uma boa plataforma para construir / testar esse tipo de coisa devido ao seu baixo custo; os guias "genéricos" como essa são transferidos para o Pi com muita facilidade ou há algo específico sobre o qual eu deveria estar ciente ao tentar um projeto desse tipo?
Respostas:
Sugiro olhar para Dispy - o módulo python de computação distribuída.
Para executar um programa em vários Raspberry Pi (nós) de um PC (servidor - suponha que IP seja
192.168.0.100
):Instale um sistema operacional em cada RasPi
Anexe cada RasPi à sua rede. Encontre o IP (se dinâmico) ou configure IPs estáticos.
(Vamos supor que você tenha três nós e os respectivos IPs
192.168.0.50-52
)Configure o Python (se ainda não estiver), instale
dispy
e executedispynode.py -i 192.168.0.100
em cada RasPi. Isso informará ao dispynode para receber informações do trabalho do servidor.No PC (servidor), instale
dispy
e execute o seguinte código python:Você também pode substituir
/some/program
com uma função de python - por exemplocompute
.Você também pode incluir dependências, como objetos, módulos e arquivos python (que
dispy
serão transferidos para cada nó) adicionandodepends=[ClassA, moduleB, 'file1']
fonte
Você deve estar ciente do trabalho que já foi realizado - há até um nome para um cluster de RasPi boxen. O Embedded Linux Wiki diz que um Bramble é definido como "um cluster Beowulf de dispositivos Raspberry Pi". O Raspberry Pi Homebrew tem vários posts sobre a Brambles , e veja também o fórum da Fundação .
fonte
Alguns funcionários da Southampton Uni montaram um cluster e escreveram uma visão geral detalhada de seus trabalhos em http://www.southampton.ac.uk/~sjc/raspberrypi/ .
fonte
É completamente possível, mas o maior problema é a atingibilidade. É uma idéia que eu não apenas consideraria viável, mas útil, como você poderia usar com a idéia de computação paralela portátil. Tanto quanto específico, linguagens de codificação como FORTRAN e C ++ farão melhor.
Veja beowulf.org para mais informações sobre computação em cluster
fonte
Esta é uma resposta ao post de Guido Garcia acima sobre 'dispy' - não consigo descobrir como responder ao seu post.
Quando um programa ('/ bin / ls') é distribuído com 'dispy' para execução paralela, esse programa na máquina cliente é transferido para cada um dos nós (para '/ tmp'). Isso é feito para que o programa desenvolvido pelo usuário na máquina cliente seja transferido sem o NFS ou algum diretório compartilhado. Isso funciona com programas binários somente quando nós e arquiteturas de cliente são compatíveis. No seu caso, acho que a arquitetura do cliente é diferente da arquitetura dos nós remotos e um nó não pode executar os binários '/ bin / ls' transferidos do cliente. Se você deseja executar / bin / ls em cada nó, pode ser mais fácil escrever uma função ou programa Python para imprimir o diretório (por exemplo, usando os.listdir) e distribuí-lo em vez de executável binário.
fonte
Há também http://pi.interworx.com se você quiser um painel de controle completo com ele. Eles têm instruções nesta página sobre como replicar, mas você precisará ser paciente, pois esse subdomínio está em execução em um cluster do Rasberry Pi. Aqui está uma foto no caso de cair:
http://www.facebook.com/photo.php?fbid=596262440393836&set=a.244167858936631.60071.170159826337435&type=1
fonte