Detailseite
Ein hybrider Ansatz zur Generierung von adjungiertem C++-Code
Antragsteller
Professor Dr. Uwe Naumann
Fachliche Zuordnung
Softwaretechnik und Programmiersprachen
Förderung
Förderung von 2010 bis 2014
Projektkennung
Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 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-Verfahren
Sachbeihilfen