Kohärentes Dateiformat beschleunigt die Zeit bis zur Lösung mit OpenFOAM

Illustration einer CFD-Simulation in einem würfelförmigen Behälter
Visualisierung der Flüssigkeitsströmung in einem Hohlraum, angetrieben von der Bewegung des Deckels. Wissenschaftler des HLRS und der WIKKI GmbH nutzten diese Benchmark-Simulation, um einen neuen Ansatz zu testen, der die Datenverwaltung in OpenFOAM vereinfachen wird. Bild: HLRS

In einer groß angelegten Simulation auf dem Supercomputer Hawk haben Wissenschaftler erfolgreich ein neu entwickeltes Dateiformat getestet, das die Arbeitszeiten für Nutzer der beliebten CFD-Software verkürzt.

Wissenschaftler des Höchstleistungsrechenzentrums Stuttgart (HLRS) haben in Zusammenarbeit mit Softwareentwicklern der WIKKI GmbH im Projekt exaFOAM erfolgreich eine neue Methode getestet, die die Nutzbarkeit von OpenFOAM-Anwendungen auf High-Performance-Computing (HPC)-Systemen deutlich verbessert. Basierend auf einem neu entworfenen Konzept, das die Wissenschaftler als „kohärentes Dateiformat“ (Coherent Data Format) bezeichnen, vereinfacht der Ansatz die Datenverwaltung für HPC-Dateisysteme während der Simulationen und eliminiert die zeitintensive Vor- und Nachbearbeitung von Daten, die gewöhnliche OpenFOAM-Simulationsworkflows verlangsamen.

Mit dem Supercomputer Hawk am HLRS hat das exaFOAM-Team erfolgreich eine Benchmark-Simulation der numerischen Strömungsmechanik (CFD) durchgeführt, bei der OpenFOAM hinsichtlich der Eingabe-/Ausgabeleistung (E/A) effizient auf 4.096 Knoten (524.288 CPU-Kerne) skaliert wurde. Diese Zahl ist doppelt so hoch wie die eines Testlaufs, den das HLRS im August 2023 abgeschlossen hat, und ist mehr als viermal so viel wie der bisherige Skalierungsrekord für OpenFOAM.

Für die Nutzer von OpenFOAM – einem kostenlosen, open-source Software-Framework für CFD-Simulationen, das u.a. in der Automobiltechnik, der Fertigung und der Energiewirtschaft weit verbreitet ist – verspricht das kohärente Dateiformat, dass Simulationen deutlich schneller ablaufen, auch auf Pre-Exascale- und Exascale-Systemen. Die Programmierkomplexität, die für typische OpenFOAM-Workflows erforderlich ist, wird verringert. Infolgedessen wird die Simulation auch für Nutzer aus Wissenschaft und Industrie zugänglicher, die auf begrenztere Rechenressourcen angewiesen sind. Für OpenFOAM-Nutzer ist der Code unter https://code.hlrs.de/exaFOAM verfügbar. 

Kohärentes Dateiformat beseitigt Engpässe in OpenFOAM-Workflows

Supercomputer wachsen in Richtung Exascale und Wissenschaftler möchten auch auf diesen Systemen OpenFOAM nutzen, um zunehmend große Simulationen durchzuführen. Allerdings führt die Steigerung der Rechenleistung nicht unbedingt zu schnelleren Ergebnissen. Der Zugang zu mehr Prozessoren mag es ermöglichen, eine größere Anzahl von Rechenprozessen parallel laufen zu lassen, aber die Vor- und Nachverarbeitung von Daten sowie die E/A sind nach wie vor ratenbegrenzende Schritte in typischen Simulationsworkflows. Schon heute wird häufig mehr Zeit für die Datenvor- und -nachverarbeitung bei großen Simulationen in OpenFOAM benötigt als für die eigentlichen Berechnungen. Diese Situation verschlechtert sich mit der zunehmenden Größe der Supercomputer weiterhin.

Normalerweise muss ein Benutzer von OpenFOAM zunächst ein Berechnungsnetz erstellen, das das physikalische System darstellt. Das Netz wird in Domänen unterteilt, von denen jede auf einen Prozessorkern verteilt ist. Obwohl die Berechnungen parallel laufen, erzeugen sie eine große Anzahl von Dateien, die seriell geschrieben, gelesen und verarbeitet werden müssen. Normalerweise verwendet OpenFOAM ein fragmentiertes Datenlayout, sodass die Orchestrierung dieses Prozesses extrem zeitaufwändig ist, insbesondere in den Pre- und Post-Processing-Schritten, die nicht parallelisiert sind. Nach Abschluss einer Simulation können die fragmentierten Daten auch das Auffinden und Wiederauffinden bestimmter Ergebnisse erschweren, da die Daten in einer großen Anzahl von Dateien gespeichert werden. In einem Höchstleistungsrechenzentrum wirkt sich dies nicht nur auf einzelne Benutzer aus, sondern kann auch die Gesamtleistung eines HPC-Dateisystems beeinträchtigen und dessen Produktivität verringern.

Das ursprünglich von Dr. Henrik Rusche, CEO der WIKKI GmbH und einer der Hauptentwickler von OpenFOAM, konzipierte kohärente Dateiformat verfolgt einen anderen Ansatz, der diesen Prozess vereinfacht. Wie in anderen OpenFOAM-Formaten werden die Zellen eines Simulationsgitters nach wie vor mit einer Owner-Neighbor-Logik organisiert, aber durch eine strenge Sortierung im Mesh-Layout wird ein globales, zerlegbares Mesh-Verständnis geschaffen.

Zusätzlich werden die an einer groß angelegten Simulation beteiligten Prozesse in Prozessorgruppen unterteilt. Jede Gruppe enthält einen einzelnen datenaggregierenden Prozess, der eine feste Beziehung zu den Daten der anderen Prozesse innerhalb der Gruppe hat und für deren Ein-/Ausgabeoperationen verantwortlich ist. Auf diese Weise verwandelt das kohärente Dateiformat eine große, fragmentierte Sammlung von Daten, die über Prozessoren verteilt sind, in eine kleinere, besser aufeinander folgende und sinnvollere Menge von „Brocken“, die für das Dateisystem leichter zu verwalten sind.

Dank der Organisation der Daten auf diese Weise wird die Anzahl der Dateien, die ein Dateisystem verwalten muss, drastisch reduziert. Das kohärente Datenformat schreibt einen kleinen Satz von ASCII-Datendateien und eine einzelne Binärdatei für jeden Zeitschritt. Die ASCII-Dateien dienen als Metadaten für die Verwaltung der Datenstruktur und der Randbedingungen. Dieser Ansatz vermeidet auch den zeitaufwändigen Schritt der Rekonstruktion der Ergebnisse einzelner Bereiche nach Abschluss der Simulation, da die Struktur des Netzes bereits in der kohärenten Datenstruktur in einem globalen Dateilayout wiedergegeben ist. In der Praxis bedeutet dies, dass die Vorverarbeitung der Daten bei einer typischen Großsimulation bis zu einer Woche dauern kann, während Forschende, die diese neue Methode verwenden, ihre Ergebnisse in nur wenigen Stunden erhalten.

Diese Leistung könnte auch andere Vorteile bieten. Am HLRS erhalten HPC-Benutzer beispielsweise feste Kontingente für die Größe der Simulationen, die sie durchführen dürfen, und für die Anzahl der Dateien, die sie speichern dürfen. Eine Verringerung der Anzahl der Dateien, die ihre Algorithmen erzeugen, könnte es daher ermöglichen, mehr Ergebnisse aus diesen Kontingenten herauszuholen, vielleicht sogar mit größeren Simulationen. Auf der Ebene der Systemverwaltung wird dieser Ansatz dem HLRS auch helfen, die Zuweisung seiner begrenzten Rechenressourcen zu optimieren und den größtmöglichen wissenschaftlichen Nutzen für seine gesamte Nutzergemeinschaft zu erzielen.

Für OpenFOAM-Programmierer, die nur Zugang zu kleineren Dateiverwaltungssystemen haben – z.B. in der Industrie – könnte dieser Ansatz auch größere Simulationen mit den internen Rechenressourcen ihres Unternehmens ermöglichen.

Weltrekord in der Skalierbarkeit von OpenFOAM

Innerhalb des exaFOAM-Projekts hat Dr. Gregor Weiß aus der Abteilung Numerical Methods and Libraries des HLRS in Zusammenarbeit mit Dr. Sergey Lesnik von der WIKKI GmbH das kohärente Datenformat für HPC-Systeme entwickelt. Im September 2023 testeten sie den Ansatz an einer Benchmark-Simulation des bekannten deckelgetriebenen Hohlraumes. Obwohl die Testanwendung aus wissenschaftlicher Sicht nicht besonders interessant ist, lässt sich die E/A-Implementierung der Forscher leicht für andere Anwendungen anpassen.

Die Simulation wurde mit 512 Millionen Gitterzellen vorbereitet, was weniger als zwei Stunden für die Vorverarbeitung im kohärenten Dateiformat benötigte. Hochrechnungen ergaben, dass derselbe Arbeitsablauf mit einem der herkömmlichen Dateiformate von OpenFOAM mehr als sieben Tage gedauert hätte. Der bisherige Rekord wurde von Wissenschaftlern des RIKEN Center for Computational Science in Kobe, Japan, aufgestellt, die OpenFOAM mit hoher Leistung auf etwa 110.000 Prozessoren betrieben.

Die Entwickler der kohärenten Datenmethode haben den Code unter https://code.hlrs.de/exaFOAM auf einer freien, quelloffenen Basis der weltweiten OpenFOAM-Gemeinschaft zur Verfügung gestellt. Eine Integration in die zukünftigen Produktionszweige von OpenFOAM ist im Gange und wird von den Entwicklern des kohärenten Datenformats unterstützt. Außerdem planen sie wissenschaftliche Veröffentlichungen, in denen die Logik hinter ihren Methoden, technische Details über den Benchmarking-Prozess und bewährte Praktiken für Benutzer beschrieben werden.

Darüber hinaus werden die Ergebnisse die laufende Forschung im Rahmen des exaFOAM-Projekts unterstützen. Ziel von exaFOAM ist es, die OpenFOAM-Algorithmen so zu verbessern, dass sie auf den kommenden massiv-parallelen Rechensystemen mit hoher Leistung laufen können. Mithilfe des kohärenten Datenansatzes will das Projektteam eine große Herausforderung angehen, die eine Verbrennungssimulation mit 500 Millionen Gitterpunkten umfasst – eine Größe, die der des jüngsten Benchmark-Laufs am HLRS entspricht. Aufgrund der umfangreichen Datenverwaltung kann die Vorverarbeitung einer so großen Simulation auf Hawk leicht mehr als 24 Stunden dauern. Das kohärente Dateiformat soll erhebliche Geschwindigkeitssteigerungen ermöglichen und den Nutzen der Methode zur Verbesserung der Zeit bis zur Lösung großer, realer Herausforderungen in Wissenschaft und Technik demonstrieren.

Christopher Williams

Dieses Projekt wurde von der European High-Performance Computing Joint Undertaking (JU) unter der Nr. 956416 finanziert. Die Joint Undertaking wird vom Forschungs- und Innovationsprogramm Horizon 2020 der Europäischen Union sowie Frankreich, Deutschland, Spanien, Italien, Kroatien, Griechenland und Portugal unterstützt.

Hawk wurde vom Ministerium für Wissenschaft, Forschung und Kunst Baden-Württemberg und vom Bundesministerium für Bildung und Forschung über das Gauss Centre for Supercomputing (GCS) finanziert.

Weiterführender Artikel

Weiß RG, Rusche H, Lesnik S, Galeazzo FCC, Ruopp A. Preprint. Coherent mesh representation for parallel I/O of unstructured polyhedral meshes. J Supercomputing.