Description

The linear algebra kernel in NGSolve is so far restricted to computations on the CPU. On the other hand, ViennaCL provides linear algebra on graphics processing units (GPUs) as a standalone library. The student should add appopriate switches within NGSolve in order to switch between the built-in NGSolve linear algebra and ViennaCL for general (black-box) linear algebra tasks.

Benefit for the Student

The student will gain experience with the pros and cons of general purpose computing on GPUs. A deeper understanding of the involved algorithms the will be obtained.

Benefit for the Projects

On the one hand, simulation times using NGSolve will be reduced considerably for a large class of problems. On the other hand, ViennaCL will gain further feedback from day-to-day use within NGSolve.

Requirements

A solid knowledge of C++ and the build process is required, but no sophisticated language concepts are necessary. The student should be able to handle include files and be familiar with the basic object oriented concepts such as inheritance.

Mentors

Joachim Schöberl, Karl Rupp