• English
    • Deutsch
  • English 
    • English
    • Deutsch
  • Login
View Item 
  •   Home
  • Universität Ulm
  • Publikationen
  • View Item
  •   Home
  • Universität Ulm
  • Publikationen
  • View Item
JavaScript is disabled for your browser. Some features of this site may not work without it.

FLENS - A Flexible Library for Efficient Numerical Solutions

Thumbnail
vts_6419_8661.pdf (1.334Mb)
171 Seiten
Veröffentlichung
2008-06-17
Authors
Lehn, Michael Christian
Dissertation


Faculties
Fakultät für Mathematik und Wirtschaftswissenschaften
Abstract
This work addresses how the C++ programming language can be extended through libraries to enhance and simplify the development of scientific software. Efforts made in this respect resulted in the design and implementation of the C++ library FLENS (Flexible Library for Efficient Numerical Solutions) as presented in this work. One crucial feature of FLENS is the possibility of extending C++ for matrix and vector types. The Curiously Recurring Template Pattern (CRTP) is used and adapted to realize multilevel class hierarchies for matrix and vector types. One advantage of applying the CRTP is the avoidance of virtual functions which can lead to a considerable runtime overhead. In FLENS the CRTP also plays an essential role within its high-level abstraction for linear algebra operations. FLENS allows the usage of overloaded operators in order to provide an expressive notation. Further, the FLENS library allows the utilization of high performance libraries like for instance BLAS (Basic Linear Algebra Subprograms) and LAPACK (Linear Algebra Package) in order to perform numerical computations. In this respect FLENS can be considered as an extremely convenient high-level abstraction. The special design of the FLENS library guarantees that no runtime overhead gets induced due to abstraction. A notable feature of the FLENS library is its simple mechanism that allows extending FLENS for new user-defined matrix and vector types as well as for further high performance libraries serving as computational kernels. Several examples are given in order to illustrate how an implementation of iterative methods can be reused for new user-defined matrix and vector types. Furthermore, this work shows how to attain the subsequent parallelization of numerical methods without the need of modifying the original implementation. Using several simple numerical problems these concepts are demonstrated and illustrated, e.g. a simple Navier-Stokes solver.
Date created
2008
Subject headings
[GND]: BLAS | C++ | LAPACK | MPI <Schnittstelle>
[LCSH]: Generic programming: Computer science | High performance computing | Meta-programming
[Free subject headings]: Curiously Recurring Template Pattern | FLENS | Object-oriented numerics | Scientific computing | Scientific software engineering
[DDC subject group]: DDC 004 / Data processing & computer science
License
Standard (Fassung vom 03.05.2003)
https://oparu.uni-ulm.de/xmlui/license_v1

Metadata
Show full item record

DOI & citation

Please use this identifier to cite or link to this item: http://dx.doi.org/10.18725/OPARU-1074

Lehn, Michael Christian (2008): FLENS - A Flexible Library for Efficient Numerical Solutions. Open Access Repositorium der Universität Ulm und Technischen Hochschule Ulm. Dissertation. http://dx.doi.org/10.18725/OPARU-1074
Citation formatter >



Policy | kiz service OPARU | Contact Us
Impressum | Privacy statement
 

 

Advanced Search

Browse

All of OPARUCommunities & CollectionsPersonsInstitutionsPublication typesUlm SerialsDewey Decimal ClassesEU projects UlmDFG projects UlmOther projects Ulm

My Account

LoginRegister

Statistics

View Usage Statistics

Policy | kiz service OPARU | Contact Us
Impressum | Privacy statement