High Performance Computing Cluster-Lösung mit MOSIX im Einsatz bei VA-TECH HYDRO Anastasios Stomas SFI Technology Services AG 12. März 2003 anastasios.stomas@sfi.ch Seite 1
Hintergrund INHALT Cluster- Systemanforderungen Cluster Arten MOSIX Kurze Historie Prinzip: Fork and Forget Realisierung: - Load-Balancing - Memory-ushering - Verteiltes Dateisystem (MFS) Praktischer Einsatz Betrieb Seite 2
Hintergrund Kundenprojekt: High performance Computing (Cluster Lösung) Kunde: VA-TECH HYDRO / Zürich Turbinen für Wasserkraftwerke Design und Optimierung der hydrodynamischen Berechnungen auf SGI-Rechnern Mehr Rechenkapazität gefordert Aber: Neue Rechner zu kostspielig Alternative: Intel-PC's im Clusterverbund Seite 3
Cluster Systemanforderung Transparente Benutzung für die User Clusterfähigkeit der Applikationen Einfache Administration Integration ins vorhandene LAN Redundanz der Nodes Desaster-Szenario Seite 4
Cluster Arten Manuelle Prozess- Verteilung: sog. Batch Basierte Cluster -(Open)PBSbzw. - PBSPro - PVM, MPI Automatische Prozess- Verteilung: -MOSIX - (Amoeba) -Plurix(JVM) Seite 5
Manuelle Prozessverteilung (Open)PBS, PVM, MPI Vorteile - Sehr flexibles System - Optimal auf eigene Bedürfnisse anpassbar - Kein Kernel- Patch nötig Nachteile - Prozesse müssen manuell generiert werden - Software anpassungen notwendig - Definition eines Master-Servers Seite 6
Automatische Prozessverteilung MOSIX (Multicomputer( Operationg System for UnIX IX) Vorteile - Transparentes System für die Anwender - Keine Softwareanpassungen nötig - Kein Master-Server, alle Nodes sind gleich Nachteile - Nicht alle Prozesse verteilbar - Kernel muss angepasst werden Seite 7
Eigenschaften von MOSIX Automatische Prozess- Verteilung im Cluster Load- Balancing: Automatische Lastverteilung Cluster kann zur Laufzeit skaliert werden Verhält sich wie ein Einzel- Rechner Im ganzen Cluster sichtbares Filesystem MFS (Mosix File System) Seite 8
Kurze Historie MOSIX wurde 1981 von Prof. Amnon Barak (Universität Jerusalem) auf einer PDP-11/23 unter UNIX Version 7 begonnen Zwei Jahre später auf einem 68010 als Multicomputer Operating System (MOS) aufgesetzt und Algorithmen verbessert Anfang der 90 Jahre auf Intel-PC's unter BSD-OS Erstmals Verbreitung außerhalb der Universität Später Implementierung auf LINUX und unter GPL (General Public License) gestellt Seite 9
Das MOSIX Prinzip: fork() and forget fork() ist der Name des UNIX-Systemaufrufs mit der ein sog. Kindprozess erzeugt wird. Die Prozessverwaltung wird so abgeändert, das ein Kindprozess auch auf anderen Knoten (Rechnern) migriert werden kann. Erzeuge Kindprozesse, die sich auf andere Knoten verteilen. Adaptive Verteilung (Nahezu) beliebig skalierbar Seite 10
Prozesse werden migriert Prozesse kommen zurück Prozessmigration: Verteilungsprozess Start Prozess Seite 11
Prozessmigration Datentransfer erfolgt über reservierte und dedizierte IP-Verbindung Eigenes Protokoll, optimiert für hohe Übertragungsraten Migrations- Prozess verläuft in zwei Stufen: - Kontaktaufnahme und Aufbau von server und client. - Übertragen der vom Prozess benutzten Speicherseiten. Gesamter Prozess erfolgt im kernel mode. Seite 12
Jeder Knoten vergleicht ständig seine Last mit dem der anderen, deren Informationen er hat. Falls sich dadurch die Gesamtlage verbessert, wird ein Prozess migriert. Ziel: Gleichmäßige Last auf allen Knoten Seite 13
Migrationssteuerung 2/2 Sekundärer Algorithmus: Memory-ushering Wird aktiviert, wenn ein Knoten anfängt zu viel Speicher auszulagern ( memory thrashing ) Überstimmt dann den anderen Algorithmus und lagert einen Prozess, der viel Speicher verbraucht, auf einen anderen Knoten aus. Ziel: Gleichmäßige Speicherausnutzung auf allen Knoten, Vermeidung von Swapping Seite 14
Verteiltes Dateisystem Das Mosix File System (MFS) Node 1 Node 2 Node 3 Node 4 Node n... /mfs/1 /mfs/2 /mfs/3 /mfs/4 /mfs/5 Beispiel: Datei /etc/test.txt auf Node 4 ist erreichbar unter: /mfs/4/dat/test.txt von allen Nodes aus Seite 15
Aufbau eines MOSIX-Clusters Installiere LINUX Installiere vanilla -Kernel von www.kernel.org Führe den MOSIX-Kernel Patch aus www.mosix.org Starte den neuen Kernel (Reboot) Konfiguriere das MOSIX System (mosix.map) Seite 16
Realer MOSIX Cluster Gbit Switch Power Edge 4600 2 x Xeon 2,2GHz 6GBRAM Precision Workstation 530 2xXeon2,2GHZ 3GBRAM Seite 17
Betrieb des MOSIX-Clusters (Ausgabe mit mon ) Seite 18
Probleme Nachfolgesoftware von CFX-TASCflow ist CFX-5. Diese Software läuft noch nicht stabil unter MOSIX Vermutung: Applikationsspezifisches Problem Seite 19
Fazit Für Anwendungen, die mehrere parallele Prozesse erzeugen, (wie hier CFX-TASCflow) ist MOSIX sehr geeignet Benutzung des Clusters ist für die Anwender sehr einfach Wartung und Systemausbau ist leicht realisierbar Netzwerktransparentes Filesystem Für Probleme die keine parallelen Prozesse erzeugen können, ist MOSIX weniger geeignet Programme müssen auf Ihre Migrationsfähigkeit getestet werden Seite 20