Openmosix, worauf dieser Artikel basiert, ist eingestellt seit 2008, sourcecodes kann man natürlich noch haben
openMosix ist ein KernelPatch, der einem LinuxKernel Computing-Cluster-Fähigkeiten beibringt - man konnte damit also aus mehreren herkömmlichen, vernetzten PCs einen Hochleistungsrechner bauen.
Eine Besonderheit von openMosix war, dass es die Lastverteilung automatisch machte (denn keiner weiß besser, wie es um die aktuelle Belastung der Maschinen steht, als der Kernel selbst): man konnte also alle Jobs auf einer Maschine starten und openMosix migrierte die Prozesse dann selbständig auf weniger belastete Maschinen, indem es einen Prozess auf der Quellmaschine einfror, über das Netzwerk auf die Zielmaschine transferierte und dort wieder zum Leben erweckte.
Erwähnenswert war auch das Projekt ClusterKnoppix - eine bootbare CD, welche automatisch ein Linux startete, das den PC in einen Node umwandelte. Eine etwas kleinere Cluster-CD war PlumpOS.
Homepage: http://openmosix.sourceforge.net/ Wiki: http://openmosix.sourceforge.net/wiki.html
Die Entwicklung wurde am 1.3.2008 eingestellt, da laut Entwickler entsprechend leistungsfähige Hardware so günstig wäre, dass eine Softwarelösung uninteressant wäre.
Die Weiterentwicklung geschieht durch das LinuxMPI-Projekt.
Lizenz: GPL
Tipps
Eignung je nach Aufgabe
openMosix ist nicht für alle Aufgaben, bei denen viele Prozesse im Spiel sind, geeignet:
Gut geeignet für:
- generell: für langlaufende (also mehr als nur wenige Sekunden), rechenintensive Jobs mit relativ wenig I/O
- MP3- oder Ogg-Encoder (wenn man größere Mengen an zu kodierendem Material hat)
- Fractalprogramme, Raytracer, Rendering etc. (wenn man ganze Filme oder mehrere Teilbilder berechnet)
- Eigene Erfahrung mit povray und 6 Openmosixnodes: Es migrieren fast keine Prozesse. Erst wenn man 30 Parallel staret, tut sich was. Vielleicht wäre hier pvmpov besser?
Schlecht geeignet für:
- make -j bzImage
- Problem: ein einzelner Compiler läuft nur recht kurz und macht dabei viel I/O, so dass sich die Prozessmigration über Netzwerk auf einen anderen Rechner nicht lohnt. Das Resultat ist, dass die meisten Prozesse auf dem Rechner bleiben, auf dem sie gestartet wurden.
Eignung je nach vorhandener Hardware
Gut geeignet:
- größere Ansammlungen von vernetzten PCs, wie z.B. in Firmen oder Schulen
- gleiche PCs sind angenehm
- es gehen aber auch unterschiedliche PCs, das erfordert dann aber mehr Konfigurationsaufwand
sehr angenehm sind vom Netzwerk bootfähige Netzwerkkarten, dann braucht man nichts lokal auf die Festplatte installieren (z.B. wenn sich dort bereits ein Betriebssystem des Imperiums breit gemacht hat), sondern kann per PXE booten und die Filesysteme per NFS mounten
Schlecht geeignet:
- es bringt nicht viel eine "Höllenmaschine" (GHz-Kampfklasse) noch an einen alten 486er per Mosix dazu zu schalten. Auch hier wäre der Aufwand höher als der Nutzen.
- es bringt auch nicht viel (von der Rechenleistung relativ zum Aufwand und Stromverbrauch her gesehen), ein paar Dutzend 486er parallel zu schalten, wenn man die gleiche Leistung schon mit einem aktuellen PC erhalten kann. Zu akademischen Zwecken kann man so etwas natürlich trotzdem machen.