View
106
Download
0
Category
Preview:
Citation preview
Marcel Riedel, Marcus Zelend, Danny Christl
Aufgabenstellung
• Recherche von Tools für einen massiv-parallelen Clusterrechner
Was ist ein Cluster?
• Vernetzung mehrerer Einzelrechner• Knoten meist über schnelles Netz
verbunden• erscheinen in vielen Fällen nach
außen als ein einziger Rechner• Zweck des Clusterings:
– Erhöhung der Rechenkapazität– Erhöhung der Verfügbarkeit
Homogene vs. heterogene Cluster
• Homogene Cluster:– gleiche Hardware– gleiches Betriebssystem auf allen
Knoten
• Heterogene Cluster:– Es kommen Knoten mit unter-
schiedlicher Hardware und/oder unterschiedlichen Betriebssystemen zum Einsatz
Begriffe: MPI
• „Message Passing Interface“– Programmierschnittstelle für den
Nachrichtenaustausch zwischen Knoten eines verteilten Systems
– mehrere Prozesse arbeiten an einem Problem und schicken sich dabei gegenseitig Nachrichten
– Nachrichtenaustausch z.B. über TCP oder gemeinsamen Hauptspeicher
– Implementierungen z.B. in C++, Java, Python
Begriffe: SMP
• „Symmetric MultiProcessing“– Multiprozessor-Computerarchitektur– 2 oder mehrere identische CPUs teilen
sich gemeinsamen Hauptspeicher– für massiv-parallele Cluster
ungeeignet– andere Multiprozessorarchitekturen:
• NUMA (Non-Uniform Memory Access)• ASMP (Asymmetric Multiprocessing)
Begriffe: SSI
• „Single System Image“
High Performance Computing Cluster
• Hohe Rechenleistung durch gemeinsame, parallele Verarbeitung zu verarbeitender Jobs durch die Knoten
• Rechenleistung des Clusters= Summe der Leistung der einzelnen Knoten
• Schnellster Cluster: BCN Supercomputer-Center, Spanien10240 Knoten bringen 62,6TFLOPS
• Verwendung:– Berechnung, Modellierung und
Simulation komplexer Systemez.B. Wettervorhersage, Klimamodelle
– Verarbeitung riesiger Messdatenmengen
– Erstellung komplexer 3D-Modelle und Animationsfilme
High Performance Computing Cluster
Hardwarekonzept
• Homogener Knotenaufbau• Ein Master-Node und beliebig viele
Compute-Nodes• Distributed Memory-Architektur• Einzelnen Knoten enthalten nur
essentielle Komponenten • Vernetzung über
Hochgeschwindigkeitsnetz z.B. Inifiniband
Softwarekonzept
• Als OS fast ausschließlich Linux im HPC-Bereich
• Dateisystem– NFS für kleine und mittlere Cluster– CXFS, Lustre, Polyserve für große
Cluster• Boot-From-LAN-Konzept für
Compute-Nodes• Clustertools übernehmen Verwaltung
Softwarekonzept
• Clustertools übernehmen Verwaltung– Power-Management– Automatische Suche nach neuen
Knoten– Job-Management, Batch-Queue-System– MPI-Implementierung
Funktionsweise• Dekomposition: Zerlegung
komplexer Aufgaben in Teilaufgaben• Job-Management-System auf
Master-Node erledigt Zuteilung und Queueing der Teilaufgaben für die Compute-Nodes
• Abarbeitung der Teilaufgaben auf den Compute-Nodes
• Zusammenfügen der Ergebnisse auf dem Master-Node
• Kommunikation zwischen den einzelnen Knoten erfolgt über MPI
Hochverfügbarkeits-cluster (HA-Cluster)
• Stellen ständig Daten und Dienste zur Verfügung
• 2 Arten: Aktiv-/Aktiv-Cluster Aktiv-/Passiv-Cluster
• Festplatten – und Serverausfälle minimieren
• Zusätzliche Rechner im System• Keine Verringerung der
Systemleistung, dafür hohe Kosten und etwas längere Ausfallzeit
• Verwendung in Servern, gekoppelt mit einem NAS (Network Attached Storage ), die Dienste (Web-, Datenbank-, FTP- und Mail-Server )
• Ausfall Internetpräsenz bedeutet: hoher wirtschaftlicher Schaden und Imageverlust
Aktiv-/ Passiv-Cluster
• Ersatzknoten ohne Funktion (StandBy)
• Bei Ausfall: Deaktivierung des Hauptsystems (Reparatur) und Aktivierung des Ersatzsystems
• Clustermanager verteilt Aufgaben neu
Aktiv-/ Aktiv-Cluster• Alle Knoten teilen sich Aufgabe• Bei Ausfall: Entfernen des defekten
Rechners logisch aus dem System • Restliche Knoten teilen sich die
Aufgaben des Ausfallrechners, gesteuert durch den Clustermanager (evtl. Neustarten der Prozesse)
• Verringerung der Systemleistung, aber sehr kleine Ausfallzeit
Clustermanager für HA-Cluster
Veritas Cluster Manager
Red Hat Cluster Manager (Linux)
Microsoft Cluster Service
Shared Memory
Shared Memory• Alle Knoten greifen auf gemeinsamen
Speicher zu• Verbindungsnetz stellt nötige
Protokolle für gleichzeitigen Speicherzugriff verschiedener Knoten bereit
• Zugriffsweise aller Knoten ist identisch Latenzzeit stets gleich
• Verbindungsnetzwerk wird Flaschenhals bei hoher Knotenzahl
• Kann über PVM als ein großer Parallelrechner angesprochen werden
Verwendung von Shared Memory
• Verwendung der Shared Memory Architektur bei:– Cluster mit geringer Knotenzahl– Aufgaben mit geringem
Datenaufkommen– Programmen, deren
Parallelisierung zu aufwändig ist
Distributed Memory
Distributed Memory
• Jeder Knoten besitzt eigenen Arbeitsspeicher
• Kein Zugriff auf „fremden“ Speicher Informationsaustausch über Nachrichten über MPI
• Nachteil: erhöhter Programmieraufwand, da explizites Ansprechen und Verwaltung der verteilten Ressourcen notwendig
Verwendung von Distributed Memory
• Verwendung der Distributed Memory Architektur bei:– Cluster mit hoher Knotenzahl– Aufgaben mit hohem
Datenaufkommen– Parallelisierte Programme bereits
vorhanden bzw. Neuentwicklung
Beowulf-Cluster
• HPC-Cluster mit folgenden Eigenschaften:– Knoten sind einfache vernetzte
Desktop-PCs– Kommunikation über TCP/IP– Betriebssystem: Linux / BSD
Beowulf-Cluster
Vor- und Nachteile von Beowulf-Cluster• Vorteile:
– Problemlose Skalierbarkeit– Lösen komplexer Aufgaben mit
billiger COTS-Hardware– Austausch defekter Rechnerknoten
im laufenden Betrieb möglich• Nachteile:
– Hoher Platzbedarf– Hoher Energieverbrauch– Hohe Wärmeentwicklung
Beowulf-Cluster CLiC
OpenMosix (ClusterKnoppix)
• Kernelpatch für Linux• Userland Tools (zur Administration)• Arbeitet als SSI-Cluster (Single System
Image)• Clusterrechner und normale Personal-
Computer können verwendet werden• Betrieb ohne HDD möglich (PXE-fähig)• Kein Master oder Serverrechner (Nodes
gleichberechtigt)• Auslastung erreicht durch regelmäßige
Multicast-Messages• Erscheint für den Nutzer als Multi-CPU-
System
• Prozessbearbeitung:– Prozess wird auf einem System
gestartet (Home Node)– Prozess überschreitet Lastgrenze
(einstellbar)– Rechner prüft auf nicht ausgelastete
Nodes im Cluster– Gefunden-> Migration des Prozesses
auf den gefunden Rechner– Speicherseiten des Home Nodes
werden kopiert und über das Netz an den gefundenen Rechner geschickt
– Kernel kopiert Seiten in den RAM
– Prozess wird auf Rechner fortgesetzt– Auf Home Node bleibt Deputy (Sheriff)
zurück -> zum Abfangen der Systemaufrufe des Prozesses
• oMFS (openMosix File-System)– Prozesse mit ständigen Zugriff auf
Daten müssten jedes Mal auf den Home Node zurück migriert werden
– Starke Zunahme der Netzwerklast und starke Performanceeinbußen
– oMFS macht Daten clusterweit bekannt
– In aktueller openMosix-Version ersetzt durch GFS (Global File System )
• Fazit:– Ungeeignet für vorherrschendes
System, da zu viele Knoten– Unüberschaubar– Starke Performanceeinbußen durch
erhöhte Netzwerklast (Multicast-Messages)
• SSI-Betriebssystem für Cluster (Modulpaket, Linux-Kernelpatch)
• Verbund herkömmlicher PCs zu symmetrischem Multiprozessor-system (SMP)
• speziell für wissenschaftliche numerische Berechnungen
Kerrighed
• Clusterweites Prozessmanagment• Unterstützung für clusterweites
Shared Memory• Cluster File System• Transparentes Prozess-
Checkpointing• Hohe Verfügbarkeit der User-
Anwendungen• Einstellbare SSI-Features
Kerrighed
• Fazit:– Systeme mit SMP-Architektur sind
für massiv-parallele Rechner (mehr als 16 CPUs) nicht geeignet
– Online-Dokumentation wenig aussagekräftig
Kerrighed
ParallelKnoppix
• vor allem für Cluster-Neulinge geeignet (ausführliches Tutorial)
• Einsatz von Live-CD, Master-Knoten auch in virtueller Maschine
• keine Software-Installation auf den Client-Knoten nötig
• mehrere MPI-Implementierungen (openMP, LAM-MPI, MPICH)
ParallelKnoppix
OSCAR
• Open Source Cluster Application Resources
• Projekt der OpenClusterGroup• Sammlung von Softwarepakten zum
einfachen Aufbau von Clustern auf Basis von PVM / MPI mit umfangreichen Werkzeugen für Clustermanagement und Analyse
OSCAR
• Implementierung der aktuellen „best-known practices“ für HPC-Cluster ständige Weiterentwicklung
• Nutzbar unter verschiedenen Linuxdistributionen
• Geeignet für nichtspezialisierte HPC-Cluster mit Knotenanzahl zwischen 4 und 100
• Durch PVM auch in heterogenen Umgebungen lauffähig
Komponenten von OSCAR
• C3 – Cluster Command Control• LAM/MPI• PVM• Maui PBS Scheduler• OpenSSH• OpenSSL• SIS – System Installation Suite
C3 – Cluster Command Control• Interface zum Management von
Cluster• Enthält Kommandozeilen-Tools zur
schnellen, effektiven Cluster-Verwaltung
LAM/MPI
• LAM – eine spezielle MPI-Implementierung
• Unterstützt MPI V1.2 und Teile von MPI V2 sowie aktives Debugging
• Volle Kompatibilität zu anderen MPI-Implementierungen
• Unterstützte Funktionen:Checkpoint/Restart, High Performance Communication, Integration von PBS, Easy Application Debugging
Weitere Komponenten• SIS – System Installation Suite
– Ermöglicht automatisierte Installation und Konfiguration von HPC-Cluster
– Nachträgliche Änderung der Einstellungen leicht möglich
• PVM (Parallel Virtual Machine)– Alternative zu MPI– Parallelrechner wird emuliert
• Maui PBS Scheduler– Erweiterter Job-Scheduler mit
• verschiedene Queue-Richtlinien,• dynamische Job-Prioritäten• Gleichbereichtigungsalgorithmen
Maui PBS Scheduler
Beurteilung von OSCAR
• geeignet für vorliegendes System• Enthält alle nötigen Tools zur
Einrichtung, Wartung und Betrieb• Aber:
– Clustergröße bereits am oberen Ende der von OSCAR unterstützten Cluster
– Keine Angabe zu Power Management, evtl. Zusatztools nötig
Fazit• Keine zufriedenstellende Lösung
gefunden• für spezielle Problem ist eine
“Massen”-Lösung im OpenSource/Freeware-Bereich unmöglich
• Anpassung von Clustersoftware über kommerzielle Firmen stellt sich als beste Lösung heraus
Recommended