Marcel Riedel, Marcus Zelend, Danny Christl. Aufgabenstellung Recherche von Tools für einen...

Post on 05-Apr-2015

106 views 0 download

Transcript of Marcel Riedel, Marcus Zelend, Danny Christl. Aufgabenstellung Recherche von Tools für einen...

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