h1

h2

h3

h4

h5
h6
http://join2-wiki.gsi.de/foswiki/pub/Main/Artwork/join2_logo100x88.png

Automatisches Differenzieren für MATLAB = Automatic differentiation of MATLAB



Verantwortlichkeitsangabevorgelegt von Andre Vehreschild

ImpressumAachen : Publikationsserver der RWTH Aachen University 2009

UmfangII, 181 S. : graph. Darst.


Aachen, Techn. Hochsch., Diss., 2009

Zsfassung in dt. und engl. Sprache


Genehmigende Fakultät
Fak01

Hauptberichter/Gutachter


Tag der mündlichen Prüfung/Habilitation
2009-01-07

Online
URN: urn:nbn:de:hbz:82-opus-26805
URL: https://publications.rwth-aachen.de/record/50588/files/Vehreschild_Andre.pdf

Einrichtungen

  1. Lehrstuhl für Informatik 12 (Hochleistungsrechnen) (N.N.) (123010)
  2. Fachgruppe Informatik (120000)

Inhaltliche Beschreibung (Schlagwörter)
MATLAB (Genormte SW) ; Programmtransformation (Genormte SW) ; Übersetzerbau (Genormte SW) ; Informatik (frei) ; semantische Transformation (frei) ; automatisches Differenzieren (frei) ; Quelltexttransformation (frei) ; Quelltextoptimierung (frei) ; Vorwärtsmodus (frei) ; automatic differentiation (frei) ; source code transformation (frei) ; code optimization (frei) ; semantic transformation (frei) ; forward mode (frei)

Thematische Einordnung (Klassifikation)
DDC: 004

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.

The interactive programming environment MATLAB is increasingly gaining popularity by enabling the user to tackle complicated mathematical problems easily. Implicit dynamic typing and a huge set of predefined functions allow rapid development of - not necessarily prototypical - programs. Under a variety of circumstances, many MATLAB programs need a way to efficiently compute accurate derivatives. The term automatic differentiation (AD) comprises a huge set of techniques to compute derivatives. Up to now AD-tools for MATLAB were only implemented using operator overloading. The local scopes of the operators constrain the analysis of the program, which therefore suffers from lesser performance and unnecessary computations. Alternatively, source transformation utilises compiler construction techniques to augment a program with statements to compute derivatives, potentially improving the performance of the AD-generated programs. This thesis introduces the first source transformation AD-tool for MATLAB, entitled ADiMat. Intensive analysis of interprocedural variable dependencies reduces the number of emitted derivative statements. The derivative statements emitted are type unspecific allowing for two approaches to compute derivatives. During the execution of the differentiated code a single derivative in one direction may be computed as well as, employing a runtime system, multiple directional derivatives may be calculated at once. The AD-tool implements a powerful specification language to efficiently specify the derivative expressions of predefined functions. Results are presented confirming the need of source code optimisation techniques while automatically generating programs for implicitly dynamically typed programming languages. Furthermore, evidence is given that programs differentiated by ADiMat need substantially fewer resources than derivatives computed by object-oriented AD-tools.

Fulltext:
Download fulltext PDF

Dokumenttyp
Dissertation / PhD Thesis

Format
online, print

Sprache
German

Externe Identnummern
HBZ: HT015836116

Interne Identnummern
RWTH-CONV-113128
Datensatz-ID: 50588

Beteiligte Länder
Germany

 GO


OpenAccess

QR Code for this record

The record appears in these collections:
Document types > Theses > Ph.D. Theses
Faculty of Mathematics, Computer Science and Natural Sciences (Fac.1) > Department of Computer Science
Publication server / Open Access
Public records
Publications database
120000
123010

 Record created 2013-01-25, last modified 2022-04-22


Fulltext:
Download fulltext PDF
Rate this document:

Rate this document:
1
2
3
 
(Not yet reviewed)