HighPerMeshes

Domänenspezifische Programmierung und zielplattformbewusste Compiler-Infrastruktur für Algorithmen auf unstrukturierten Gittern


Ziel des Projektes HighPerMeshes ist die Entwicklung eines in der Praxis einsetzbaren domänenspezifischen Frameworks zur effizienten, parallelen und skalierenden Implementierung iterativer Algorithmen auf unstrukturierten Gittern. Simulationssoftware im Zeitbereich, die in diese Gruppe fällt, wird in den letzten Jahren sowohl im wissenschaftlichen als auch im industriellen Umfeld vermehrt eingesetzt und ergänzt bzw. verdrängt vergleichbare Methoden auf regulären Gittern. Um in der rechnergestützten Forschung und industriellen Entwicklung den Anwendungsbereich dieser Methoden voranzutreiben, zum Beispiel von der Analyse eines statischen Systems hin zur Optimierung von Parametern, wird immer mehr Rechenleistung benötigt. Dazu können hochskalierende Systeme mit vielen parallelen Rechenknoten mit modernen Prozessorarchitekturen wie Manycore-CPUs, Graphikprozessoren oder FPGAs beitragen. Im Gegensatz zur Domäne der regulären Gitter gibt es für Entwicklerinnen und -entwickler natur- und ingenieurwissenschaftlicher Simulationsprogramme mit unstrukturierten Gittern bisher keine einfach zu nutzenden, produktiven und damit praxistauglichen Entwicklungswerkzeuge, um moderne Rechnersysteme effizient zu erschließen.

Mit den Ergebnissen des Projekts HighPerMeshes können existierende, in einer Hochsprache geschriebene Quelltexte von Anwenderinnen und Anwendern mit moderatem Aufwand durch domänenspezifische Bibliotheks- und Sprachelemente ergänzt werden. Unsere optimierende Compiler-Infrastruktur nutzt dann Domänenwissen, um eine hochparallelisierte und effiziente Ausführung auf allen relevanten modernen Hardwarearchitekturen, auch in heterogenen Systemen, zu ermöglichen. Damit bietet das Projekt für eine Vielzahl an HPC-Entwicklerinnen und -Entwicklern aus Wissenschaft und Industrie einen einfachen und nachhaltigen Pfad zur skalierenden Nutzung aktueller und zukünftiger Zielarchitekturen.

Die Entwicklung setzt bewusst auf Standards und Open-Source-Technologien, um von Weiterentwicklungen zu profitieren und eine langfristige Nutzung sicherzustellen. Die darauf aufbauende Compiler-Infrastruktur wird mit der Veröffentlichung der Projektergebnisse als Open-Source-Projekt frei zugänglich gemacht. Mit den am Projekt beteiligten Personen zur Anwendungsentwicklung, sowie weiteren Nutzerinnen und Nutzern an den beteiligten Rechenzentren wird der Grundstein für eine nachhaltige Gemeinschaft für die Weiterentwicklung und Pflege der Projektergebnisse gelegt.

Publikationen