Construir grade de processamento paralelo a partir de desktops de 32 bits

1

Estou executando a simulação no meu laptop (Core 2 Duo 1.8Ghz com 4GB de RAM executando o Windows 7) que está demorando muito tempo.

Eu tenho um par de desktops de 32 bits (Core 2 Duo 1.8Ghz com 4GB de RAM) não utilizados. Eu gostaria de conectá-los (como escravos) em uma grade usando uma LAN ao meu laptop (como mestre) para concluir a execução de algoritmos mais rapidamente.

Como fazer isso? Qual sistema operacional devo usar? Meu sistema operacional deve ser um servidor? Preciso de algum hardware adicional?

Por favor, aponte-me para quaisquer tutoriais ou livros. Por favor, me dê suas valiosas sugestões e conselhos.

    
por 8A52 30.05.2011 / 20:29

2 respostas

2

Que tipo de infraestrutura de computação distribuída / paralela você depende muito do problema que está sendo trabalhado? As cargas de trabalho mais fáceis de distribuir são aquelas que são facilmente subdivididas: dividam o conjunto de problemas em 4 partes, gerem os blocos em 4 máquinas, juntem os resultados novamente depois que o processamento estiver concluído. Cargas de trabalho que são escolhas ruins para subdivisão são aquelas que têm strong dependência de dados processados anteriormente ou no momento.

Para dados que não podem subdividir, sua melhor aposta é analisar algumas das imagem de sistema único frameworks lá fora (veja o link para uma lista). Isso faz com que vários sistemas emulem um único sistema maior. Mesmo assim, deve-se tomar cuidado para projetar o processamento de maneira a minimizar a comunicação entre os sistemas. Sistemas como esses são onde produtos de rede como o Infiniband são realmente úteis.

Para dados que podem subdividir, você tem muito mais opções. O maior talvez seja o BOINC , que é projetado em torno de relatórios de workstations de latência muito alta (horas, dias ou até semanas). Eu já ouvi falar de grupos privados do BOINC por aí.

Um que usei na faculdade é PVM . Esta é uma biblioteca C (existe um wrapper perl, que é novo) que permite a comunicação entre sistemas através de uma variedade de transportes.

O que quer que você escolha, você ainda terá que reprojetar como funciona a sua estrutura de computação. Vai dar muito trabalho, mas pelo menos você pode usar mais recursos para resolver seus problemas. É muito improvável que você possa simplesmente descartar seu código existente em uma estrutura de computação distribuída e fazer com que tudo funcione, apenas colocar o framework distribuído em funcionamento será um desafio.

    
por 30.05.2011 / 21:02
0

Dependendo das suas necessidades. Mas, para a carga de trabalho computacional, tente Java RMI ou MPI.
Para processamento de dados, tente Hadoop

    
por 30.05.2011 / 21:07