Detailseite
Projekt Druckansicht

Ein hybrider Ansatz zur Generierung von adjungiertem C++-Code

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
 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung