Ich möchte bei mir auf der Arbeit einen Mikrocomputercluster aufbauen, um eine unserer Anwendungen einem Stresstest zu unterziehen. Obwohl ich einen kleinen finanziellen Spielraum habe, möchte ich die Kosten niedrig und die Rechenleistung hoch halten. Außerdem bin ich noch sehr neu in der Idee des Parallelrechnens und die wenigen Recherchen, die ich bisher durchgeführt habe, sind ziemlich überwältigend. Folgendes möchte ich tun:
- haben einen Cluster von n Maschinen
- Senden Sie einen Befehl an diese Maschinen (vorzugsweise verteilen sie die Arbeit untereinander, aber wenn ich sie nacheinander an alle senden muss, ist das auch in Ordnung) und lassen Sie sie mir Bericht erstatten, wenn sie fertig sind.
- vorzugsweise mit nodejs, aber andere Skriptsprachen wie Python und Ruby sind auch in Ordnung
Ich weiß nicht, wie ich den Code auf die Geräte bekomme, aber ich würde erwarten, dass meine Maschine ungefähr Folgendes sendet, wenn sie parallel laufen würden:
cluster.runTest(0, 1000)
wo cluster.runTest
es so aussieht:
runTest = function(start, num) {
for(var i=start; i<num; i++) { //split up which devices runs which commands, hopefully
sendRequestToServer()
}
}
Wenn sie jedoch nicht untereinander delegieren können:
for(var i=0; i<10; i++) { //10 devices
chips[i].runCommand(i*100, (i+1)*100) //run a certain chunk of commands
}
.. würde ausreichen.
Pis sind zwar billig, aber sie scheinen nicht die Leistung zu haben, die ich brauche, um diese Befehle in angemessener Zeit auszuführen. Andererseits bin ich über denParallelladas scheint ausreichend zu sein, kostet aber etwas mehr. Ich habe mir andere angesehen, wie Wandboard, Cubox, Beaglebone und viele, viele andere.
Ich entschuldige mich, wenn meine Vorstellungen davon, wie das funktioniert, falsch sind. Bitte lassen Sie mich wissen, wie das tatsächlich funktionieren würde! Ich bin mir auch nicht sicher, ob Meinungsfragen hier erlaubt sind, aber ich versuche, so objektiv wie möglich zu bleiben.