Hardware- and Performance-aware Codegeneration for Computational Science and Engineering

Über HPC²SE

Codegenerierung für portable und flexible Simulationen

Das HPC²SE Projekt entwickelt einen neuartigen Metaprogrammieransatz, um die Nutzung moderner und zukünftiger heterogener HPC-Systeme für eine breite Klasse von Simulationen einfacher und effizienter zu gestalten.

Eine Schlüsseltechnologie für die Forschung oder industrielle Entwicklungen ist die numerische Simulation. Beispiele hierfür sind die Klimaprognose, der Katastrophenschutz, die Energieversorgung, der Fahrzeugbau. Zunehmend gewinnen simulationsbasierte Risikoabschätzungen an gesellschaftlicher und wirtschaftlicher Bedeutung, sodass daraus auch ökonomische und politische Entscheidungen abgeleitet werden.

Für solche Simulationen stellt die Hardwareentwicklung hat der vergangenen 10 Jahren eine große Herausforderung dar. Einzelne Prozessorkerne werden nicht mehr schneller, sondern höhere Rechenleistung wird nur durch mehr Parallelität erreicht. Darüber hinaus hängt die Zeit für die Berechnung einer Simulation nicht nur von der Leistung der Prozessoren ab, sondern insbesondere auch vom verwendeten mathematischen Verfahren und wie gut dieses zur verwendeten Hardware passt. Für jedes neue Modell und jede neue Hardware sind daher spezifische Optimierungen und Anpassungen nötig. Diese Änderungen erfordern mathematisches, algorithmisches und technisches Expertenwissen. Das HPC²SE Projekt wird Techniken entwickeln, um die Wahl und Implementierung dieser Optimierungen für Anwender signifikant zu erleichtern. Die zu entwickelnden Tools werden als Open-Source veröffentlicht und sind nicht an eine spezielle Simulationssoftware gekoppelt. Damit stehen sie einer breiten Community aus Forschung und Industrie zur Verfügung. Im Rahmen des Projektes werden die beiden Open-Source Systeme DUNE & waLBerla genutzt, welche von den beteiligten Gruppen mitentwickelt werden.

Konkret wird das Projekt dem Anwender eine domain-spezifische Sprache (DSL) zur Verfügung stellen, welche es erlaubt das mathematische Modell direkt zu beschreiben. Diese Eingabe wird in eine algebraische Zwischenrepräsentation übersetzt, welche weitreichende mathematische und algorithmische Optimierungen ermöglicht. Eine effiziente Codegenerierung für verschiedene moderne Zielarchitekturen (CPUs, GPUs, usw.) wird durch einen speziell erweiterten C++ Compiler realisiert. Zusammenfassend, wird das HPC²SE Projekt eine Reihe neuer Forschungsergebnisse in der formalen Beschreibung und algorithmischen Umsetzung von zeitintensiven Simulationen sowie in der effizienten Codegenerierung und –optimierung für moderne hochparallele Systeme entwickeln. Somit wird die Nutzung von modernen many-core Hochleistungssystemen entscheidend erleichtert. Anhand von Simulationen, wie sie im Bereich der Luftfahrttechnik, Elektrotechnik, Batterieforschung oder der Erdöl- und Erdgastechnik vorkommen, wird HPC²SE zeigen, wie dasselbe mathematische Modell schnell und effizient für unterschiedliche Architekturen umgesetzt werden kann.

Impressum | Datenschutzerklärung | Powered by Hugo v0.18.1 & Bootstrap | Updated: 2018-10-01 10:01