- Automatic differentiation of MATLAB
Vehreschild, Andre; Bischof, Christian (Thesis advisor)
Aachen : Publikationsserver der RWTH Aachen University (2009)
Doktorarbeit
Aachen, Techn. Hochsch., Diss., 2009
Kurzfassung
Die interaktive Programmierumgebung MATLAB erfreut sich steigender Beliebtheit bei der Lösung komplizierter mathematischer Problemstellungen. Eine implizite dynamische Typisierung und eine große Menge von vordefinierten Funktionen erlauben eine schnelle Erstellung von - nicht notwendigerweise nur Prototypen von - Programmen. Im Verlauf dieser Programme werden häufig präzise Ableitungen von Funktionen, zum Beispiel zur Lösung von nicht-linearen Gleichungssystemen benötigt. Automatisches Differenzieren (AD) stellt eine umfangreiche Sammlung von Techniken zur Berechnung von Ableitungen zur Verfügung. Bisher standen für MATLAB nur AD-Werkzeuge zur Verfügung, welche die Ableitungen mittels überladener Operatoren berechneten. Diese objektorientierten Techniken führen meist zu längeren Ausführungszeiten, da ein Operator keinen Zugriff auf die Gesamtstruktur der abzuleitenden Funktionen hat und somit unnötige Berechnungen durchgeführt werden. Eine Alternative zu überladenen Operatoren stellen Quelltext-Transformationen dar, welche mit Techniken des Übersetzerbaus ein Programm analysieren und ein um Anweisungen zur Berechnung von Ableitungen erweitertes Programm emittieren. Diese Arbeit stellt ADiMat, das erste auf Quelltext-Transformationen basierende AD-Werkzeug für MATLAB, vor. Durch Analysen der Variablenbeziehungen innerhalb des Programms wird die zu erzeugende Menge Quelltext reduziert. Desweiteren wird durch typunspezifische Ableitungsanweisungen ein abgeleitetes Programm erstellt, welches ohne weitere Hilfsmittel die Ableitung in eine Richtung sowie mit Hilfe eines Laufzeitsystems multiple Richtungsableitungen berechnen kann. Im AD-Werkzeug ist eine mächtige Spezifikationssprache implementiert, um für die große Menge von vordefinierten Funktionen Ableitungsausdrücke effizient angeben zu können. Abschließend werden Resultate präsentiert, die die Notwendigkeit von Quelltext-Optimierungen bei der Generierung von Programmen für implizit dynamisch getypte Programmiersprachen zeigen. Außerdem wird der reduzierte Ressourcenbedarf von ADiMat generierten Ableitungen im Vergleich mit AD-Werkzeugen, die mittels überladener Operatoren implementiert sind, aufgezeigt.
Einrichtungen
- Lehrstuhl für Hochleistungsrechnen (Informatik 12) [123010]
- Fachgruppe Informatik [120000]