1 Punkte von GN⁺ 2 시간 전 | Noch keine Kommentare. | Auf WhatsApp teilen
  • MareNostrum V an der Polytechnischen Universität Katalonien in Barcelona ist einer der 15 leistungsstärksten Supercomputer der Welt und eine öffentliche Forschungsinfrastruktur im Wert von 200 Millionen Euro, die verteiltes Rechnen über 8.000 Knoten hinweg ermöglicht
  • Es handelt sich nicht um einen einzelnen Hochleistungsrechner, sondern um ein verteiltes System aus Tausenden unabhängigen Computern, die über eine InfiniBand-NDR200-Fat-Tree-Topologie verbunden sind, sodass jeder Knoten mit derselben minimalen Latenz mit jedem anderen kommunizieren kann
  • Jobs werden über den SLURM Workload Manager eingereicht, wobei Batch-Skripte mit Angaben zu Ressourcenanforderungen, Zeitlimits und Projektbudget in die Warteschlange des Schedulers gestellt werden
  • Das System läuft in einer Air-Gap-Umgebung ohne externen Internetzugang, daher müssen benötigte Bibliotheken und Datensätze im Voraus vorbereitet werden, und das Herausziehen der Ergebnisse wird mitunter eher zum Flaschenhals als die Berechnung selbst
  • Es ist eine öffentliche Ressource, die Forschenden kostenlos zur Verfügung steht: In Spanien erfolgt der Zugang über RES, europaweit über regelmäßige Ausschreibungen des EuroHPC Joint Undertaking

Architektur: Das Netzwerk ist der Computer

  • Das größte Missverständnis bei HPC ist die Vorstellung, man miete einen einzigen extrem leistungsstarken Computer; tatsächlich werden Jobs verteilt auf Tausende unabhängige Rechner eingereicht
  • Um zu verhindern, dass GPUs im verteilten Rechnen untätig auf Datenübertragungen warten, nutzt MareNostrum V ein InfiniBand-NDR200-Fabric in einer Fat-Tree-Topologie
    • In gewöhnlichen Netzwerken entstehen Bandbreitenengpässe, wenn mehrere Computer denselben Switch teilen
    • Eine Fat-Tree-Topologie erhöht die Link-Bandbreite zu höheren Netzwerkschichten hin und garantiert dadurch nicht blockierende (non-blocking) Bandbreite
    • Jeder der 8.000 Knoten kann mit derselben minimalen Latenz mit jedem anderen Knoten kommunizieren

Aufbau der Compute-Partitionen

  • General Purpose Partition (GPP): Für hochgradig parallele CPU-Workloads ausgelegt; 6.408 Knoten mit jeweils 112 Intel-Sapphire-Rapids-Kernen, zusammen mit einer Spitzenleistung von 45,9 PFlops
  • Accelerated Partition (ACC): Für Spezialanwendungen wie AI-Training oder Molekulardynamik ausgelegt; 1.120 Knoten mit jeweils 4 NVIDIA H100 SXM GPUs, Spitzenleistung 260 PFlops
    • Bei einem Einzelhandelspreis von etwa 25.000 US-Dollar pro H100 liegen allein die GPU-Kosten bei über 110 Millionen US-Dollar
  • Login Nodes: Der erste Einstiegspunkt bei einer SSH-Anmeldung; nur für leichte Aufgaben wie Dateitransfer, Code-Kompilierung und Einreichen von Job-Skripten gedacht, nicht für eigentliche Berechnungen

Quanteninfrastruktur

  • In MareNostrum 5 ist Spaniens erster Quantencomputer physisch und logisch integriert
    • Dazu gehören ein quantenbasiertes System mit digitalen Gates sowie der auf supraleitenden Qubits basierende Quantum Annealer MareNostrum-Ona
  • Quantum Processing Units (QPUs) ersetzen den klassischen Supercomputer nicht, sondern fungieren als spezialisierte Beschleuniger
  • Optimierungsprobleme oder quantenchemische Simulationen, die selbst für H100-GPUs schwer zu bewältigen sind, können auf Quantum-Hardware ausgelagert werden, wodurch ein Kraftzentrum für großskaliges hybrides klassisch-quantenbasiertes Rechnen entsteht

Air Gap, Quoten und die Realität des HPC-Betriebs

  • Air Gap: Per SSH von außen erreichbar, aber die Compute-Knoten haben keinen Zugang zum externen Internet
    • pip install, wget oder Verbindungen zu externen HuggingFace-Repositories sind nicht möglich
    • Alles, was Skripte benötigen, muss vorab heruntergeladen, kompiliert und im Storage-Verzeichnis bereitgestellt werden
    • Administratoren stellen die meisten Bibliotheken und Softwarepakete über das module-System bereit
  • Datenbewegung: Ein- und Ausgaben laufen über scp oder rsync via Login Node
    • Da die eigentliche Berechnung sehr schnell sein kann, wird das Zurückholen fertiger Ergebnisse auf den lokalen Rechner mitunter zum Flaschenhals
  • Limits und Quoten: Projekten wird ein bestimmtes CPU-Zeitbudget zugewiesen, und für die Zahl gleichzeitig laufender oder wartender Jobs eines einzelnen Nutzers gibt es harte Grenzen
    • Für jeden Job muss zwingend ein striktes Wall-Time-Limit angegeben werden
    • Wird die angeforderte Zeit auch nur um eine Sekunde überschritten, beendet der Scheduler den Prozess sofort
  • Logging: Nach dem Einreichen eines Jobs gibt es keine Live-Terminalausgabe; sämtliches stdout und stderr wird automatisch in Logdateien umgeleitet, etwa sim_12345.out und sim_12345.err
    • Ergebnisse prüfen und Debugging erfolgen nach Abschluss oder Absturz des Jobs durch das Durchsehen der Textdateien
    • Der Status eingereichter Jobs lässt sich mit squeue oder tail -f überwachen

SLURM Workload Manager

  • Nach Genehmigung einer Forschungszuteilung und SSH-Login erscheint ein völlig gewöhnlicher Linux-Terminal-Prompt
  • Da Tausende Forschende das System gleichzeitig nutzen, würde das direkte Starten schwerer Skripte im Terminal den Login Node lahmlegen und eine Warnmail der Systemadministration nach sich ziehen
  • SLURM (Simple Linux Utility for Resource Management) ist eine Open-Source-Software zur Job-Planung: In einem Bash-Skript werden benötigte Hardware, Software-Umgebung und Ausführungscode beschrieben, anschließend wird der Job in die Queue gestellt, bei verfügbarer Hardware ausgeführt und danach werden die Knoten wieder freigegeben
  • Wichtige #SBATCH-Direktiven:
    • --nodes: Anzahl der benötigten physischen Maschinen
    • --ntasks: Gesamtzahl der zu erzeugenden MPI-Prozesse (Tasks), die SLURM über die Knoten verteilt
    • --time: Striktes Wall-Clock-Zeitlimit; bei Überschreitung sofortiger Abbruch
    • --account: Projekt-ID, von der die CPU-Zeit abgezogen wird
    • --qos: Quality of Service oder Angabe einer bestimmten Queue, z. B. bietet eine Debug-Queue schnellen Zugriff, aber nur kurze Laufzeiten

Praxisbeispiel: Orchestrierung eines OpenFOAM-Sweeps

  • Um mit einem ML-Surrogatmodell den aerodynamischen Abtrieb vorherzusagen, müssen für 50 unterschiedliche 3D-Meshes 50 hochpräzise CFD-Simulationen (Computational Fluid Dynamics) durchgeführt werden
  • Beispiel für ein SLURM-Job-Skript für einen einzelnen OpenFOAM-CFD-Fall auf der General Purpose Partition:
    • Ressourcenangaben wie --nodes=1, --ntasks=6, --time=00:30:00
    • Laden der Umgebung mit module load OpenFOAM/11-foss-2023a
    • Sequentielle Ausführung von surfaceFeatureExtract, blockMesh, decomposePar, snappyHexMesh, potentialFoam, simpleFoam und reconstructPar über srun --mpi=pmix
  • Statt 50 Jobs manuell einzureichen, lassen sich die einzelnen Jobs mit SLURM-Abhängigkeiten (dependency) aneinanderketten
    • Mit sbatch --dependency=afterany:$PREV_JOB_ID können 50 Jobs innerhalb von Sekunden in die Queue gestellt werden
    • Bis zum nächsten Morgen sind 50 aerodynamische Auswertungen verarbeitet und geloggt, bereit zur Umwandlung in Tensoren für das ML-Training

Grenzen der Parallelisierung: Amdahls Gesetz

  • Obwohl pro Knoten 112 Kerne verfügbar sind, wurden für die CFD-Simulation nur 6 Tasks angefordert — wegen Amdahls Gesetz
  • Jedes Programm enthält einen seriellen Anteil (serial fraction), der sich nicht parallelisieren lässt; der theoretische Geschwindigkeitsgewinn wird durch diesen Anteil strikt begrenzt
    • Formel: S = 1 / ((1−p) + p/N), wobei S der gesamte Speedup ist, p der parallelisierbare Anteil und N die Zahl der Prozessorkerne
    • Selbst wenn nur 5 % des Codes seriell sind, beträgt der maximale theoretische Speedup selbst bei Nutzung aller Kerne von MareNostrum V nur 20-fach
  • Werden Tasks auf zu viele Kerne verteilt, steigt der Kommunikations-Overhead über das InfiniBand-Netzwerk
    • Wenn mehr Zeit für die Übertragung von Randbedingungen zwischen Kernen aufgewendet wird als für die eigentliche Berechnung, kann zusätzliche Hardware die Ausführung sogar verlangsamen
  • Bei Simulationen kleiner Systeme (N=100) steigt die Laufzeit nach 16 Threads, während die Hardware erst bei großen Systemen (N=10k+) vollständig produktiv wird
  • Code für Supercomputer zu schreiben ist eine Übung im Management des Verhältnisses von Compute zu Kommunikation

Zugangswege

  • Trotz der Hardwarekosten ist der Zugang zu MareNostrum V für Forschende kostenlos, da Compute-Zeit als öffentlich finanzierte wissenschaftliche Ressource behandelt wird
  • Forschende an spanischen Einrichtungen können sich über das spanische Supercomputing-Netzwerk (RES) bewerben
  • Forschende in ganz Europa können sich über regelmäßige Zugangsausschreibungen des EuroHPC Joint Undertaking bewerben
    • Der Track "Development Access" ist für Projekte wie Code-Portierung oder Benchmarking von ML-Modellen ausgelegt und damit auch für Data Scientists gut zugänglich

Noch keine Kommentare.

Noch keine Kommentare.