Hallo!
Vielleicht ist das ein etwas übertriebenes Projekt, aber ich möchte mir für extrem rechen-, datentransfer-, etc. -lastige Aufgaben eine Art Grid programmieren, das allerdings so lose aufgebaut ist, dass jederzeit Rechner hinzugefügt oder entfernt werden können (Entfernen natürlich nur, während der Rechner im Leerlauf ist).
Bisher habe ich erste Versuche mit DatagramSockets gewagt, über die ich dann per Multicast Daten an die angeschlossenen PCs verschickt habe. Ich bin da aber sehr schnell an die Grenzen gelangt, da ich nicht gleichzeitig über den gleichen Port senden und empfangen kann bzw. auch, wenn ich mehrere Ports benutze, den gleichen Rechner nicht mehrfach in die entsprechende Gruppe (213.0.0.1) eintragen kann.
Wie ich mir die Funktionsweise vorstelle:
Auf jedem beliebigen Rechner, der sich im gleichen Netzwerk wie das Grid befindet, notfalls von außen auch per VPN, lässt sich eine Steuersoftware bzw. Eingabemaske starten, die per Multicast die "Aufforderung" zum Rechnen verschickt. Daraufhin erhält ein Rechner, der zuerst reagierende, die "Rechenaufgabe" und teilt dann entsprechend der aktuellen Last der einzelnen Teile des Netzwerkes die Aufgabe auf und vergibt die Teile an die PCs.
Ist eine Teilaufgabe fertig, geht die Meldung zurück an den für diese Aufgabe gewählten "Master"-PC. Ist die Aufgabe gelöst, wird das Ergebnis zurück an den Rechner übertragen, auf dem die Eingabemaske läuft.
Wichtig wäre es, so selten wie möglich große Ergebnissätze übers Netzwerk zu übertragen, um dadurch nicht das gesamte Grid auszubremsen.
Laufen soll dieses Grid übrigens nicht auf irgendwelchen Hochleistungsrechnern, sondern ganz einfach auf den eingeschalteten aber gerade nicht benutzten Rechnern bei uns.
Ich weiß, das ist vllt. etwas "größenwahnsinnig" , aber denkt ihr, mir ist dabei (noch ) zu helfen?
Vielleicht ist das ein etwas übertriebenes Projekt, aber ich möchte mir für extrem rechen-, datentransfer-, etc. -lastige Aufgaben eine Art Grid programmieren, das allerdings so lose aufgebaut ist, dass jederzeit Rechner hinzugefügt oder entfernt werden können (Entfernen natürlich nur, während der Rechner im Leerlauf ist).
Bisher habe ich erste Versuche mit DatagramSockets gewagt, über die ich dann per Multicast Daten an die angeschlossenen PCs verschickt habe. Ich bin da aber sehr schnell an die Grenzen gelangt, da ich nicht gleichzeitig über den gleichen Port senden und empfangen kann bzw. auch, wenn ich mehrere Ports benutze, den gleichen Rechner nicht mehrfach in die entsprechende Gruppe (213.0.0.1) eintragen kann.
Wie ich mir die Funktionsweise vorstelle:
Auf jedem beliebigen Rechner, der sich im gleichen Netzwerk wie das Grid befindet, notfalls von außen auch per VPN, lässt sich eine Steuersoftware bzw. Eingabemaske starten, die per Multicast die "Aufforderung" zum Rechnen verschickt. Daraufhin erhält ein Rechner, der zuerst reagierende, die "Rechenaufgabe" und teilt dann entsprechend der aktuellen Last der einzelnen Teile des Netzwerkes die Aufgabe auf und vergibt die Teile an die PCs.
Ist eine Teilaufgabe fertig, geht die Meldung zurück an den für diese Aufgabe gewählten "Master"-PC. Ist die Aufgabe gelöst, wird das Ergebnis zurück an den Rechner übertragen, auf dem die Eingabemaske läuft.
Wichtig wäre es, so selten wie möglich große Ergebnissätze übers Netzwerk zu übertragen, um dadurch nicht das gesamte Grid auszubremsen.
Laufen soll dieses Grid übrigens nicht auf irgendwelchen Hochleistungsrechnern, sondern ganz einfach auf den eingeschalteten aber gerade nicht benutzten Rechnern bei uns.
Ich weiß, das ist vllt. etwas "größenwahnsinnig" , aber denkt ihr, mir ist dabei (noch ) zu helfen?