Estou pensando em construir um cluster de microcomputadores no trabalho para testar o estresse de um de nossos aplicativos e, embora tenha um pouco de margem financeira, gostaria de manter o custo baixo e a capacidade de computação alta. Também sou muito novo na ideia de computação paralela, e a pouca pesquisa que fiz até agora é bastante impressionante. Aqui está o que eu quero fazer:
- tem um cluster de n máquinas
- enviar um comando para essas máquinas rodarem (de preferência, elas distribuem o trabalho entre si, mas se eu tiver que enviar para cada uma delas em sequência, tudo bem também) e fazer com que elas me informem quando terminarem
- de preferência com nodejs, mas outras linguagens de script como python e ruby também funcionam
Não sei como enviar o código para os dispositivos, mas esperaria enviar algo assim da minha máquina se eles rodassem em paralelo:
cluster.runTest(0, 1000)
onde cluster.runTest
fica assim:
runTest = function(start, num) {
for(var i=start; i<num; i++) { //split up which devices runs which commands, hopefully
sendRequestToServer()
}
}
No entanto, se não puderem delegar entre si:
for(var i=0; i<10; i++) { //10 devices
chips[i].runCommand(i*100, (i+1)*100) //run a certain chunk of commands
}
.. seria suficiente.
Pis são baratos, mas não parecem ter o tipo de energia que eu precisaria para executar esses comandos em um tempo razoável. Por outro lado, tropecei noParalelao que parece ser suficiente, mas custa um pouco mais. Eu olhei para outros como wandboard, cubox, beaglebone e muitos, muitos outros.
Peço desculpas se minhas idéias de como isso funciona estão incorretas. Sinta-se à vontade para me informar como isso realmente funcionaria! Também não tenho certeza se perguntas de opinião são permitidas aqui, mas estou tentando mantê-las o mais objetivas possível.