Open Source im professionellen Einsatz

High-Performance-Computing mit Mosix und Mosixview

Geteilte Last

High-Performance-Computing für daheim oder mit einem Cluster aus 500 Rechnern: Mosix kann beides. Die grafische Oberfläche Mosixview sorgt dafür, dass Sie dabei den Überblick über Prozesse, Prozessoren und Performance behalten.

Zwar ist die Zeit der Großrechner und Supercomputer noch nicht vorbei, die großen Brummis haben aber verstärkt Konkurrenz bekommen: Gewöhnliche PCs steigen in ähnliche Leistungsklassen auf - und das zu einem Bruchteil der Kosten. Es müssen nur genügend CPUs parallel arbeiten.

Das kann innerhalb eines Computers stattfinden (bei Dual- oder Mehrprozessor-Systemen) oder mit Hilfe von Cluster-Software, die viele einzelne PCs zu einem Supercomputer verbindet. In so einem Cluster können 500 und mehr leistungsfähige Rechner zusammenarbeiten, dieselbe Technik eignet sich aber auch dafür, aus mehreren ausgedienten PCs daheim einen parallel arbeitenden MP3-Encoder zu basteln.

Die schwierigste Aufgabe beim High-Performance-Computing (HPC) ist es, die Last möglichst sinnvoll auf alle beteiligten System zu verteilen, also das Load Balancing. In den meisten Fällen sind die Prozesse nicht völlig unabhängig, sondern kommunizieren miteinander. Folglich hängt die resultierende Rechenleistung nicht nur von Geschwindigkeit und Anzahl der einzelnen Komponenten ab, sondern auch von der Kommunikationsgeschwindigkeit. Bei einem Cluster aus gewöhnlichen PCs ist eine schnelle Netzwerkverbindung also in jedem Fall von Vorteil.

Wandernde Prozesse

Die Hebrew University of Jerusalem entwickelt zu diesem Thema Mosix[1]. Hierbei handelt es sich um eine Erweiterung (unterliegt der GPL) des bestehenden Linux-Kernels, die automatisch die Last in einem Mosix-Rechnerverbund ausbalanciert. Ein Mosix-Cluster sieht nach außen hin aus wie ein einziges großes System mit so vielen Prozessoren, wie Computer im Cluster enthalten sind.

In einem Mosix-Cluster sind alle Rechner mehr oder weniger gleichberechtigt, es gibt also keinen Master-Server, der alle Vorgänge steuert. Dennoch ist es sinnvoll, alle Applikationen zunächst auf einem einzigen System im Rechner-Verbund zu starten. Mosix kümmert sich dann selbst um die optimale Lastverteilung. Für diese Aufgabe ist Mosix in der Lage, laufende Programme über das Netzwerk auf andere Cluster-Mitglieder zu verschieben (migrieren), ohne dass der Prozess davon etwas bemerkt.

Auf einen anderen Rechner migrierte Prozesse erscheinen weiterhin lokal in der Prozessliste des Computers, auf dem sie gestartet wurden. Tatsächlich laufen sie aber auf einer anderen Maschine, deren Rechenleistung sie nutzen. Mosix entscheidet anhand verschiedener Informationen, die es von jedem Cluster-Rechner erhält, welchen Prozess es auf einen anderen, vielleicht weniger ausgelasteten Computer verschiebt. In diese Entscheidung fließen Daten wie die Geschwindigkeit, Auslastung oder die Anzahl an CPUs ein.

Cluster@home

Mosix-Cluster sind an vielen Universitäten und in der HPC-Welt verbreitet, aber auch der Linux-Anwender zu Hause kann seine Altlasten durchaus sinnvoll und preiswert zu einem eigenen Supercomputer zusammenbauen. Selbst der verstaubte 486er oder Pentium I kann beispielsweise an der Umwandlung der heimischen CD-Sammlung ins MP3-Format mitarbeiten.

Mit Hilfe des Boot-ROMs der Netzwerkkarte oder einfach mit einer simplen Bootdiskette kann jeder PC in einem Netzwerk von einem NFS-Server booten. Die Festplatte in solchen Diskless Clients bleibt unberührt, so dass sich der Computer auch wieder schnell mit dem vorhandenen Betriebssystem auf der Festplatte starten lässt[2],[3].

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook