SciPAL

CUDA-based scientific computing. Tools and selected applications. The first goal of this thesis is the design of SciPAL (Scientific and Parallel Algorithms Library), a C++-based and operating-system-independent library. The core of SciPAL is a domain-specific embedded language for dense and sparse linear algebra which is presented in chapter 1. Chapter 2 shows that by using SciPAL, algorithms can be stated in a mathematically intuitive, unified way in terms of matrix and vector operations. The resulting rapid prototyping capabilities are discussed by using LU factorization and principal component analysis as example. SciPAL ports the most frequently used linear algebra classes of the widely used finite element library deal.II to CUDA (NVidia’s extension of the programming language C for programming their GPUs). Thereby, simulation frameworks based on deal.II can easily be adapted to GPU-based computing. Besides adding a user-friendly API to any BLAS SciPAL particularly aims at simplifying the usage of NVidia’s CUBLAS, especially the issues of data transfer arising from CUDA’s distributed memory programming model. ...