Achtung:

Sie haben Javascript deaktiviert!
Sie haben versucht eine Funktion zu nutzen, die nur mit Javascript möglich ist. Um sämtliche Funktionalitäten unserer Internetseite zu nutzen, aktivieren Sie bitte Javascript in Ihrem Browser.

Data Center Building O Show image information

Data Center Building O

Erstellung eines Fortran-Frontends für ADOL-C

Mit Hilfe des Open-Source Softwarepakets ADOL-C können für Funktionsauswertungen, die als C oder C++-Code gegeben sind, Ableitungen beliebiger Ordnung im Rahmen der Rechengenauigkeit bestimmt werden. Viele wissenschaftliche Anwendungen werden jedoch in Fortran programmiert, da die gängige Fortran-Compilern verglichen mit den üblichen C++-Compilern effizienteren Maschinen-Code erzeugen. Aus diesem Grund soll ein Fortran-Frontend für ADOL-C entwickelt werden, um auch Funktionsauswertungen, die als Fortran-Code gegeben sind, mit ADOL-C differenzieren zu können.

ADOL-C verwendet die Objekt-Orientierte Programmierung in C++, um Operatoren und Elementarfunktionen für einen neuen Datentyp, die "aktiven" reellen Zahlen, zu überladen. Dadurch wird neben der eigentlichen Funktionsauswertung eine interne Funktionsdarstellung, ein sogenannter Trace, der implementierten mathematischen Funktion erzeugt. Basierend auf diesem Trace können anschließend Ableitungen beliebiger Ordnung, wie z.B. Gradienten, Jacobi-Matrizen oder Hesse-Matrizen, berechnet werden.

Die Aufgabe besteht darin, ein Fortran-Frontend zu ADOL-C zu erstellen, um die Operatoren bzw. Elementarfunktionen für einen neuen Datentyp der "aktiven" reellen Zahlen aufrufen zu können. Damit soll neben der eigentlichen Funktionsauswertung eine interne Funktionsdarstellung analog zum Vorgehen in C++ generiert werden.
Diese interne Funktionsdarstellung kann dann von der ADOL-C Version zur Ableitungsberechnung genutzt werden.

Der "aktive" reelle Datentyp in Fortran soll aus Effizienzgründen die gleiche Speicherverwaltungsmethode wie in der C++ Implementierung verwenden. Diese Speicherverwaltung ist stark von der expliziten Allokierung und Deallokierung der Variablen abhängig . Dafür sind Destruktoren notwendig, die aber erst mit dem Fortran 2003 Standard eingeführt wurden. Aus diesem Grund ist es erst jetzt möglich, dieses Frontend zu erstellen.

Weitere Informationen zum automatischen Differenzieren und zu ADOL-C sind auf den Webseiten www.autodiff.org und http://projects.coin-or.org/ADOL-C verfügbar.

Contact

Dr. Jens Simon

Paderborn Center for Parallel Computing (PC2)

Jens Simon
Phone:
+49 5251 60-1731
Fax:
+49 5251 60-1714
Office:
O2.161
Web:

The University for the Information Society