Project Details
A hybrid approach to the generation of adjoint C++-code / hybrid adjoints
Applicant
Professor Dr. Uwe Naumann
Subject Area
Software Engineering and Programming Languages
Term
from 2010 to 2014
Project identifier
Deutsche Forschungsgemeinschaft (DFG) - Project number 168415794
Die robuste und effiziente Berechnung von Adjungierten numerischer Simulationsprogramme in C++ stellt eine signifikante Herausforderung für zahlreiche Wissenschaftler und Ingenieure dar. Derzeit existiert kein Compiler, der in der Lage wäre, beliebige C++-Programme zu adjungieren. Stattdessen müssen Laufzeitlösungen basierend auf der Überladung von Operatoren und intrinsischen Funktionen in C++ verwendet werden. Der offensichtlichen Eleganz und Robustheit dieses Ansatzes steht eine oft suboptimale Effizienz der Adjungiertenberechnung gegenüber. Gründe dafür stellen insbesondere die nicht verfügbare statische Programmanalyse und die fehlende Ausnutzung von Programmstruktur dar. Die Auswirkungen manifestieren sich bei diversen Anwendungen stärker und schwächer bei anderen. Wir schlagen einen hybriden Ansatz in Form einer Kombination von Überladung und Quellcodetransformation vor, mit dem Ziel einer garantierten näherungsweise optimalen Effizienz der generierten Adjungiertenberechnungen. Numerisch komplexe und gleichzeitig oft syntaktisch simplere Programmteile sollen per Quellcodetransformation in hocheffizienten adjungierten Code umgewandelt werden. Letzterer soll dann während der Interpretation der restlichen Berechnung zur Laufzeit automatisch aufgerufen werden. Der Nutzen dieses Ansatzes soll an zwei relevanten Anwendungsprogrammen demonstriert werden.
DFG Programme
Research Grants