Design moderner Numerikbibliotheken am Beispiel von SG++
Files
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
SG++ ist eine in C++ geschriebene Numerikbibliothek, die umfangreiche Anwendungsmöglichkeiten bietet. Basierend auf dünnen Gittern können mit SG++ Probleme in der Finanzmathematik und im Data-Mining, als auch partielle Differenzialgleichungen gelöst werden. Dabei steht die Effizienz der Berechnungen im Vordergrund. Diese Arbeit befasst sich jedoch mit der effizienten Verwendung und der Softwarequalität der Bibliothek. Es wird definiert, was eine gute Programmierschnittstelle ausmacht und welche Techniken und Konzepte zur Umsetzung verwendet werden können. Anschließend wird ein Refactoring der Bibliothek SG++ durchgeführt, damit es den aufgestellten Richtlinien entspricht und es wird erklärt, welche Vorteile die umgestaltete Bibliothek von Benutzersicht bietet. Laufzeittests verdeutlichen, welche Auswirkungen die Änderungen auf die Performance haben. Zusätzlich wird die Unterstützung weiterer Schnittstellen für andere Sprachen untersucht. Hier wird speziell auf Python und Java eingegangen und der zusätzliche Rechenaufwand gemessen, den die beiden Sprachen beim Aufrufen von C++-Funktionen benötigen.