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)

  • Rechenwerk im Mittelpunkt:
    Beim HPC liegt der Fokus klar auf der Rechenleistung. Die typischen Anwendungen – etwa Simulationen, numerische Analysen oder Wettermodelle wie die in der Vorlesung besprochenen vom DLR – sind extrem rechenintensiv und benötigen daher Prozessoren mit hoher FLOPS-Performance. Besonders GPUs sind hier interessant, da sie eine enorme Parallelisierung ermöglichen.
  • Effiziente lokale Speicher:
    Da viele Berechnungen große Datenmengen benötigen, die eng mit der CPU zusammenarbeiten, ist eine hohe Speicherbandbreite entscheidend. Hierbei geht es nicht um große Speicherkapazitäten, sondern um schnelle Datenzugriffe, um die CPUs nicht auszubremsen.
  • Verbindungsnetz:
    Im HPC sind Verbindungsnetze zwar wichtig, aber sie dienen primär dazu, den Datenverkehr innerhalb von Clustern zu optimieren. Sie sind nicht genau so wichtig wie das Rechenwerk

HTC (High Throughput Computing)

  • Speicher im Mittelpunkt:
    HTC-Systeme bearbeiten viele kleine, unabhängige Aufgaben gleichzeitig. Daher ist ein skalierbarer und effizienter Speicher entscheidend, um große Datenmengen zu speichern und für die parallelen Prozesse bereitzustellen. Die Fähigkeit, viele parallele Lese- und Schreibvorgänge zu unterstützen, ist dabei wichtiger als die absolute Zugriffsgeschwindigkeit.
  • Verbindungsnetz:
    Das Verbindungsnetz spielt ebenfalls eine wichtige Rolle, da es die Datenübertragung zwischen den Knoten ermöglicht. Es muss robust und zuverlässig sein, da Tasks oft über lange Zeiträume laufen und dabei konsistente Ergebnisse liefern sollen.
  • Rechenleistung:
    Hier ist die Rechenleistung weniger kritisch. Standard-Prozessoren sind ausreichend, solange sie in großer Anzahl vorhanden sind und die Last über viele Knoten verteilt werden kann.

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? (Die Grenzen von FLOPS als Maß für die Computerleistung)

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