Description
ViennaCL provides a couple of solvers for systems of equations. For many applications it is in addition desired to compute the eigenvalues of the system matrix. As usual, the method of choice depends on the structure of the system matrix.
Subproject 1: For huge, sparse symmetric matrices the largest eigenvalues can be obtained by the iterative Lanczos' Method, which should be implemented by the student. For non-symmetric systems, Arnoldi's Method should be implemented. If only the largest eigenvalue is of interest, power iteration can be used. Similarly, the smallest eigenvalue can be obtained by the inverse power iteration.
Subproject 2: For dense matrices, the standard eigenvalue decomposition using the QR-method should be implemented. In contrast to the iterative methods outlined above for sparse matrices, the parallelization of the QR-algorithm is not as straightforward, but students who have mastered numerics classes will be able to cope with it.
Benefit for the Student
The student will learn how to identify and make use of parallel branches of eigenvalue computations. Besides familiarity with modern computing architectures, a better understanding of several basic linear algebra operations will be obtained.
Benefit for the Project
The computation of eigenvalues is one of the most important requirements on a linear algebra packages, but not straightforward to parallelize and thus missing in many GPU libraries. The student will fill this blind spot in ViennaCL.
Requirements
As for the required programming skills, basic C and C++ knowledge is sufficient. Same background in OpenCL is of advantage, but not necessary as long as programming experience is available.
Since the debugging of numerical algorithms can be very tedious, we seek for a student who really enjoys to twiddle with numbers in order to implement and verify the numerical algorithms. Basic linear algebra is required. The student should in particular be familiar with eigenvalues and eigenvectors. Access to a machine with a mid- to high-range graphics adapter is beneficial, but not mandatory.