Höchstleistungsrechner

Aufgabe 2.1: Ein neuer Höchstleistungsrechner

Angenommen, Sie sind Direktor eines Rechenzentrums und sollen einen neuen Höchstleistungsrechner beschaffen. Wie würden Sie vorgehen? Gehen Sie im Detail auf folgende Fragen ein:

  1. Welche Bewertungskriterien würden Sie wählen?
  2. Wie würden Sie die Benchmarks bestimmen?
  3. Wenn Ihre Beschaffung auf TCO (Total-Cost-of-Ownership) basiert, welche Optimierungen müssen die Anbieter durchführen?
  1. Bewertungskriterien

    • Standortwahl:
      • Der erste Schritt den ich in Erwägung ziehen würde, wäre einen gut geeigneten Standort zu finden. Der muss genug Platz bieten und von den geographischen Umständen her geeignet sein, damit das Rechenzentrum dort langfristig betrieben werden kann. Idealerweise liegt der Standort etwas außerhalb einer Stadt, aber mit einer stabilen und leistungsfähigen Stromversorgung. Die Nähe zu Hochschulen oder Instituten wäre von Vorteil, um potenzielle Nutzer direkt anzusprechen. Dabei würde ich auch darauf achten, dass die Infrastruktur vor Ort passt, also schnelle Internetanbindung, Sicherheit (z. B. keine Hochwassergefahr) und Zugang zu nachhaltigen Energieressourcen wie Solar- oder Windkraft.
    • Use-Case-Definition:
      • Danach würde ich mir überlegen, was genau das Rechenzentrum leisten soll. Wird es primär für wissenschaftliche Berechnungen genutzt oder auch für rechenintensive Aufgaben wie Simulationen oder Grafikanwendungen, die hohe GPU-Leistung erfordern? (Rechenzentren können nicht alles gleich gut, der SuperMUC zum Beispiel absolut nicht fürs Bitcoin-Mining gemacht um es überspitzt zu erklären). Abhängig vom Use-Case könnte ich dann auch gezielt überlegen, welche Universitäten, Forschungsinstitute oder Unternehmen Interesse hätten, die Kapazitäten des Rechenzentrums zu nutzen. Der Standort könnte wie oben schon erwähnt im besten Fall so gewählt sein, dass die Zielgruppe gleich in der Nähe ist.
    • Finanzierung und Partner:
      • Sobald klar ist, was und wo ich bauen will, würde ich Sponsoren und Partner suchen, die das Projekt unterstützen. Firmen wie Lenovo haben beim SuperMUC-NG gezeigt, wie solche Kooperationen erfolgreich umgesetzt werden können. Gleichzeitig würde ich Fördermittel beantragen, z. B. bei der EU oder nationalen Forschungseinrichtungen. Hier ist ein solider Meilensteinplan entscheidend, der zeigt, wie das Projekt umgesetzt wird und welche Vorteile es bringt.
    • Technische Umsetzung:
      • Sobald diese grundlegenden Dinge feststehen, geht’s an die Umsetzung. Hier würde ich mich um die Details kümmern: Stromversorgung (am besten nachhaltig), effiziente Klimatisierung, Brandschutzmaßnahmen und Monitoring-Systeme, die den Betrieb überwachen. Besonders wichtig wären auch Redundanzen, um Ausfälle zu vermeiden, und natürlich ein Augenmerk auf Energieeffizienz, damit das Rechenzentrum nicht zum Stromfresser wird. Mit modernen Technologien könnte man z. B. auch die Abwärme sinnvoll nutzen, um Gebäude zu beheizen oder in anderen Prozessen weiterzuverwenden.
  2. Benchmarks bestimmen

    • Auslastung:
      • Ich würde typische Workloads simulieren, um die Effizienz des Systems bei verschiedenen Anwendungen wie wissenschaftlichen Berechnungen oder KI-Trainings zu messen.
    • Verfügbarkeit:
      • Ein wichtiger Benchmark ist die tatsächliche Verfügbarkeit des Systems. Ziel ist eine möglichst hohe Betriebszeit (z. B. 99,9 %), auch bei voller Auslastung.
    • Geplante Nichtverfügbarkeit:
      • Wartungszeiten sollten minimal und vorhersehbar sein. Tests würden zeigen, wie schnell und effizient Updates oder Reparaturen durchgeführt werden können.
    • HV-Benchmark (BSI):
      • Nach einer kurzen Recherche habe ich den HV-Benchmark des BSI gefunden (HV-Benchmar vom BSI) , der sich als passender Standard für die Bewertung der Hochverfügbarkeit eines Rechenzentrums eignet. Er berücksichtigt Faktoren wie Wiederherstellungszeiten, Verfügbarkeitsklassen und Ausfallsicherheit und ermöglicht damit eine systematische Bewertung.

Zusätzlich könnten technische Benchmarks wie LINPACK (Rechenleistung), IOzone (Speicherzugriffe) oder Energieeffizienztests ergänzt werden, um ein umfassendes Bild der Systemleistung zu erhalten.

  1. Welche Optimierungen müssen die Anbieter durchführen?
    • Verringerung menschlicher Fehler:
      • Man nehme an, ein Forscher führt seine Berechnungen auf einem Supercomputer aus. Wenn der Code aber nicht optimiert ist, sei es in der Laufzeit oder beim Speicherverbrauch, gehen unnötig viele CPU-Stunden drauf, und das kostet. Anbieter könnten hier mit Tools helfen, die ineffizienten Code erkennen, und so Ressourcenverschwendung vermeiden.
    • Zuverlässigkeit und Betriebszeit:
      • Ein Supercomputer bringt nur was, wenn er läuft. Die Instandhaltung sollte so effizient wie möglich sein, damit Ausfälle minimiert werden. Monitoring-Systeme und Redundanzen könnten hier den Unterschied machen.
    • Skalierbarkeit:
      • Systeme sollten modular aufgebaut sein, sodass man bei steigendem Rechenbedarf einfach zusätzliche Kapazitäten hinzufügen kann, ohne alles von Grund auf umbauen zu müssen.
    • Energieeffizienz:
      • Supercomputer produzieren eine Menge Abwärme. Warum nicht nutzen? Die Wärme könnte man sinnvoll in Fernwärmenetze einspeisen oder Gebäude heizen. Gleichzeitig sollte energieeffiziente Hardware verwendet werden, um die laufenden Kosten zu senken.

Aufgabe 2.2: Eigenschaften eines Hochleistungsrechners

Unsere Rechnersysteme basieren grob auf einer Balance zwischen Rechenwerk, Speicher und Verbindungsnetz. Wie setzen Sie die Schwerpunkte für ein HPC-System und für ein HTC-System?

HPC (High Performance Computing)

  • Rechenleistung im Fokus:
    HPC konzentriert sich auf maximale Rechenleistung für rechenintensive Anwendungen wie Simulationen oder Wettermodelle. GPUs ermöglichen dabei eine hohe Parallelisierung.

  • Kommunikationsnetz:
    Ein schnelles Netzwerk verhindert Engpässe und stellt sicher, dass die Rechenleistung effizient genutzt wird.

  • Speicher:
    Lokaler Speicher mit hoher Bandbreite unterstützt die CPUs, ohne dass große Speicherkapazitäten erforderlich sind.

HTC (High Throughput Computing)

  • Rechenleistung im Fokus:
    HTC bewältigt viele parallele Tasks durch eine hohe Anzahl von Prozessoren, um die Last effizient zu verteilen.

  • Kommunikationsnetz:
    Ein skalierbares Netzwerk sichert die Datenübertragung zwischen Knoten und verhindert Bottlenecks.

  • Speicher:
    Speicher dient als Unterstützung für parallele Prozesse und muss viele gleichzeitige Lese- und Schreibvorgänge ermöglichen.

Lösung aus Übung

EGI Definition

HTC - High Throughput Computing

Ein Rechenparadigma, das sich auf die effiziente Ausführung einer großen Anzahl von lose gekoppelten Aufgaben konzentriert.

  • Aufgrund der minimalen Anforderungen an parallele Kommunikation können die Aufgaben auf Clustern oder physisch verteilten Ressourcen mithilfe von Grid-Technologien ausgeführt werden.
  • HTC-Systeme sind typischerweise darauf optimiert, den Durchsatz über einen langen Zeitraum zu maximieren.
  • Typische Metrik: Jobs pro Monat oder Jahr.

HPC - High Performance Computing

Ein Rechenparadigma, das sich auf die effiziente Ausführung von rechenintensiven, eng gekoppelten Aufgaben konzentriert.

  • Aufgrund der hohen Anforderungen an parallele Kommunikation werden die Aufgaben typischerweise auf Low-Latency-Interconnects ausgeführt, die eine schnelle Datenfreigabe zwischen einer großen Anzahl von Prozessoren ermöglichen, die am selben Problem arbeiten.
  • HPC-Systeme nutzen Low-Latency-Cluster und Supercomputer, die darauf optimiert sind, die Anzahl der Operationen pro Sekunde zu maximieren.
  • Typische Metriken: FLOPS, Aufgaben/Sekunde, I/O-Raten.

Zusammenfassung aus Übung - Grid Cloud 2024, Übung 2

HTC

  • Loosely-coupled tasks
  • Minimal parallel interaction
  • Physically distributed

Ziel:

  • Throughput over Time
  • Metrik: Jobs / Monat

HPC

  • Tightly-coupled tasks
  • Parallel communication via low latency interconnect
  • Large number of processors

Ziel:

  • Maximale Operationen pro Sekunde
  • Metrik: FLOPS

Aufgabe 2.3: Linpack Benchmark

Ein Maßstab für die Performance eines Höchstleistungsrechners wird in GFlop/s angegeben.

1. Was genau sind GFlop/s?

Gigaflops pro Sekunde (GFlop/s) sind eine Maßeinheit für die Rechenleistung eines Computers oder Prozessors. Es wird die Anzahl an Gleitkommaoperationen pro Sekunde widergegeben, diese Einheit hat sich als Nachweis für die Leistung eines Prozessors etabliert

2. Warum ist dies unter Umständen kein objektives Maß? Gibt es ein besseres?

Wie oben beschrieben, sind FLOPS “FLoating-point Operations Per Second”. Also eine mathematische Berechnung auf Gleitkommazahlenbasis. CPUs führen jedoch nicht nur Prozesse aus, die auf floating point mathematics basieren, sondern auch viele andere Operationen, wie logische Vergleiche, Ganzzahlberechnungen oder das Verwalten von Datenbewegungen. FLOPS berücksichtigen diese nicht und geben deshalb kein vollständiges Bild der tatsächlichen Leistung einer CPU.

Eine bessere Alternative sind praxisnahe Benchmarks wie SPECint oder SPECfp, die die Gesamtleistung eines Systems unter realistischen Bedingungen testen. Diese berücksichtigen zusätzlich Speicherzugriffe, Parallelität und die Effizienz verschiedener Operationen.

Bestimmen Sie den Linpack-Wert auf Ihrem Smartphone wie in der Vorlesung gezeigt.

3. Setzen Sie Ihr Resultat in GFlop/s in Bezug zur aktuellen Top500-Liste.

iPhone12,3-D421AP / 6 cores

  • Problem size: 500

  • Number of runs: 100

  • Multithread mode: Aktiviert

  • Run: #100

  • Mflop/s: 5006.88

  • Time: 0.1080

  • Norm Res: 5.1700

  • Precision: 2.22044605e-16

Max Mflop/s: 9402.84 ()

Avg Mflop/s: 5412.55

Der letzte Platz auf der Top 500 Liste ist:

Vergleich:

oder:

Mein Handy kommt nicht mal Ansatzweise an den schlechtesten Supercomputer in der aktuellen Liste dran. Der HSUper ist leistungsfähiger als mein Iphone

4. Gehen Sie die historisch schnellsten Hochleistungsrechner der Top500-Liste durch. Wäre Ihr Smartphone irgendwann so leistungsstark gewesen? Wenn ja, wäre es als Hochleistungsrechner einsetzbar gewesen?

Ja wäre es, mein Iphone hätte zwar niemals den ersten Platz belegen können, hätte aber bis knapp zum 11/1997 es in die Top500 geschafft auch wenn eher am Anfang im Mittelfeld und gegen Ende eher weiter unten. Mit dem vom oben berechneten Benchmark hätte mein Iphone also als Hochleistungsrechner bis knapp 11/1977 genutzt werden können.


Aufgabe 2.4: Ein Tag im Leben eines Grid-Jobs

Abbildung 1 zeigt schematisch „einen Tag im Leben eines Grid-Jobs“ (Auch wenn es sich hier um Grid-Jobs handelt, sind die Konzepte auch in Clouds wiederzufinden – allerdings sehr viel einfacher).

Um einen ersten Überblick über die Inhalte und Zusammenhänge im Grid und Cloud Computing zu erhalten, geben Sie bitte zu jeder der vier in Abbildung 1 angegebenen Sequenzen (Initialisierung, Input, Ausführung, Output) stichpunktartig an, welche Aufgaben Ihrer Meinung nach dort jeweils erfüllt werden müssen und welche Probleme dabei auftauchen können. Beachten Sie, dass die Wolken in Abbildung 1 reale Organisationen darstellen.

Ziel der Aufgabe ist nicht die vollständige Auflistung aller möglichen Aufgaben (was aufgrund von Überschneidungen und der Fülle der Funktionalitäten ohnehin nicht möglich wäre). Vielmehr soll sie Ihnen den Einstieg in das Themengebiet erleichtern. Dazu ist die Spezifikation der Open Grid Services Architecture (OGSA) (Link zur Quelle) eine gute Quelle für Ihre Recherche.

1. Initialisierung

Aufgaben:

  • Job-Einreichung: Benutzer reicht den Grid-Job über eine Schnittstelle ein
  • Authentifizierung: Überprüfung der Benutzerrechte
  • Ressourcenplanung: Zuweisung von CPU, Speicher und weiteren Ressourcen
  • Job-Scheduling: Platzierung des Jobs in der Warteschlange

Mögliche Probleme:

  • Authentifizierungsfehler: Zugriff wird verweigert
  • Ressourcenknappheit: Verzögerungen durch unzureichende Ressourcen
  • Ineffizientes Scheduling: Längere Wartezeiten

2. Input

Aufgaben:

  • Datenübertragung: Eingabedaten werden an die Grid-Knoten gesendet
  • Datenvalidierung: Sicherstellung der Datenintegrität und -kompatibilität
  • Datenverteilung: Aufteilung der Daten für parallele Verarbeitung

Mögliche Probleme:

  • Netzwerkengpässe: Langsame Datenübertragung
  • Datenfehler: Beschädigte oder unvollständige Daten
  • Sicherheitsrisiken: Datenlecks während der Übertragung

3. Ausführung

Aufgaben:

  • Prozessmanagement: Starten und Überwachen der Job-Prozesse
  • Lastverteilung: Optimale Nutzung der verfügbaren Ressourcen
  • Fehlerbehandlung: Umgang mit Laufzeitfehlern und Ausfällen

Mögliche Probleme:

  • Hardware-Ausfälle: Unterbrechung der Job-Ausführung
  • Software-Inkompatibilitäten: Fehler durch fehlende Abhängigkeiten
  • Leistungsschwankungen: Unstabile Performance der Knoten

4. Output

Aufgaben:

  • Ergebnissammlung: Zusammenführung der Ausgaben von allen Knoten
  • Datenvalidierung: Überprüfung der Ergebnisqualität
  • Rückgabe der Ergebnisse: Übermittlung an den Benutzer
  • Ressourcenfreigabe: Freigabe der verwendeten Ressourcen

Mögliche Probleme:

  • Datenkonsistenz: Fehlerhafte oder unvollständige Ergebnisse
  • Speicherengpässe: Schwierigkeiten bei der Speicherung großer Ausgabedaten
  • Zugriffsprobleme: Benutzer erhält die Ergebnisse nicht rechtzeitig