Expression templates for partial differential equations
Final Report Abstract
Bereits seit mehreren Jahren wird die Programmiertechnik der Expression Templates (ET) erfolgreich eingesetzt, um benutzerfreundliche und effiziente C++-Bibliotheken zu realisieren. Daraus entstanden einige sehr leistungsstarke ET-Anwendungen, vorwiegend zur Durchführung von Matrix-Vektor-Berechnungen, aber auch für komplexere Problemstellungen, wie etwa der numerischen Lösung partieller Differentialgleichungen. Trotz der großen Leistungsfähigkeit fand die ET-Technik wegen der aufwändigen Programmierung und den vorwiegend auf Hochleistungsrechnern bestehenden Performance-Problemen nur zögerlich Anwendung. Im Rahmen des DFG-Projekts Expression Templates für partielle Differentialgleichungen fanden entscheidende Weiterentwicklungen der Technik selbst statt. So wurden kurze und einfach realisierbare ET-Varianten erarbeitet, die leichter implementierbar, erweiterbar und wartbar sind. Dadurch wird die ET-Technik auch für darin unerfahrene Entwickler zu einer interessanten, da einfach anwendbaren Programmiermethode. Darüber hinaus wurde mit den template-nummerierten Variablen und den darauf aufbauenden Fast Expression Templates leistungsverbessernde Mechanismen eingeführt, um auch auf Hoch- und Höchstleistungsrechnern die ET-Technik ohne Performance-Nachteile verwenden zu können. Dies stellt gerade im Hinblick auf die Lösung partieller Differentialgleichungen einen wichtigen Erfolg dar. Denn somit sind ET-Anwendungen, die auf Arbeitsplatzrechnern entwickelt wurden, ohne große Änderungen auf Hochleistungsplattformen transportabel. Des Weiteren entstand mit der Template-Bibliothek Colsamm ein kompaktes, leistungsstarkes und benutzer freundliches Softwarepaket zur Erstellung der lokalen Diskretisierungsmatrizen Finiter Elemente Approximationen. Die flexiblen und mathematiknahen Schnittstellen, die mittels effizienten ET-Implementierungen realisiert wurden, ermöglichen die einfache und intuitive Verwendung der Bibliothek, insbesondere auch für Entwickler aus Anwendungsgebieten. Dabei entstehen durch den Einsatz von Colsamm keine Einschränkungen auf die Art und Implementierung der zugrunde liegenden Diskretisierungsgitter und nachfolgend angewandten Lösungsverfahren. Daraus ergaben sich mehrere Kooperationen mit anderen Forschungsinstituten. So wird die Bibliothek u.a. bei der Quell-Lokalisation in Kopf-Dipolmodellen zur Simulation von Gehirnströmen, sowie in der verbesserten Regularisierung der Bewegungsfelder im optischen Fluss eingesetzt. Generell eröffnen die Ergebnisse des DFG-Projekts einen erweiterten Einsatz von Expression Templates in der numerischen Simulation. Die ET-Technik ist somit auch darin unerfahrene Programmierer einfacher realisierbar und kann auf unterschiedlichen Computerplattformen ohne weitere Einschränkungen verwendet werden. Darüber hinaus finden die vereinfachten Implementierungstechniken sowie die Template-Bibliothek Colsamm wichtige Anwendungen in der wissenschaftlichen Lehre.
Publications
-
Efficient and User-friendly Computation of Local Stiffness Matrices. Frontiers in Simulation, Simulationstechnique, 18. Symposium in Erlangen, 2005
J. Härdtlein und C. Pflaum
-
Fast Expression Templates. Computational Science - ICCS 2005, Vol. 3515 LNCS, Seiten 1055 bis 1063. Springer-Verlag, 2005
J. Härdtlein, A. Linke und C. Pflaum
-
Blocking Techniques with Fast Expression Templates. Technischer Bericht 06-0, Lehrstuhl für Informatik 10, Systemsimulation, Universität Erlangen-Nürnberg, 2006
J. Härdtlein, A. Linke und C. Pflaum
-
Fast Expression Templates - Enhancements for High Performance C++ Libraries. Technischer Bericht 06-7, Lehrstuhl für Informatik 10, Systemsimulation, Universität Erlangen-Nürnberg, 2006
J. Härdtlein, A. Linke und C. Pflaum