Distributed Systems Chair
Theses
Theses theme proposals:
 Mobile & Cloud Lab theses proposals
 Intelligent Transportation Systems Lab theses topics
 Distributed and Pervasive Systems Group theses topics
 Theses themes related to Autonomous driving
 Theses themes by Dr Ulrich Norbisrath
 Topics on Chemoinformatics by Stefan Kuhn
 Some of the themes related to parallel computing are listed here:
Parallel implementation of Domain Decomposition Methods – testing the FreeFEM implementations
Multiprecision arithmetics systems and applications in preconditioning / power saving etc. (sup. Eero Vainikko)
Parallel programming languages and techniques (sup. Eero Vainikko)
And in particular:
Reversible computations (sup. Eero Vainikko & Stefan Kuhn)
The idea is to study the recent studies on reversibility and to try out and implement some subset of this fastdeveloping research area. As it is stated in [1] — the integration of reversibility in software development is still at an early stage. Therefore a lot of interesting ideas are worth investigating. Some of the subthemes are (not limited to) as follows:

Reversible debugging of parallel programs
Debugging parallel programs is an order of magnitude more complex than serial codes. The starting point is an existing parallel debugger implementation with basic capabilities for reverse execution of MPI (Message Passing Interface) programs based on parallel checkpoints of the program. The idea is to enhance the parallel debugger for a broader set of MPI commands and to enhance functionality. 
Behavioral contracts
The idea is to study the concept of Behavioural contracts. These are abstract descriptions of expected communication patterns for clients or servers in interaction. Behavioural contracts come naturally equipped with a notion of compliance: when a client and a server follow compliant contracts, their interaction is guaranteed to progress or successfully complete. The thesis will be about implementation and checking it out for some real set of situations. 
Reliability and faulttolerance by choreographic design in Erlang
There is an implementation of faulttolerance in the Erlang programming language. The purpose of the thesis is to study the implemented concepts, test it with some class of applications and possibly enhance the implementation for more wider set of cases. 
Reversible debugging of parallel programs
Debugging parallel programs is known to be an order of magnitude more difficult than serial codes. The main idea is to investigate how reversibility can be beneficial for debugging parallel programs. Some real bugs in parallel programs will be tracked down with reversibility being the main concept for showing how this can be done much faster. 
Fault tolerance and reversibility implementation within MPI (Message Passing Interface) programs
A starting point for this topic is here: https://www.openmpi.org/faq/?category=ft — As can be seen, not much seems to have been implemented in this subject area. The task will be, based on recent developments in the reversibility studies to get something “real” done towards faulttolerant programming using MPI.
[1] Mezzina C.A. et al. (2020) Software and Reversible Systems: A Survey of Recent Activities. In: Ulidowski I., Lanese I., Schultz U., Ferreira C. (eds) Reversible Computation: Extending Horizons of Computing. RC 2020. Lecture Notes in Computer Science, vol 12070. Springer, Cham. https://doi.org/10.1007/9783030473617_2
Parallel implementation of Domain Decomposition Methods for wave propagation problemsand their performance testing (sup . Eero Vainikko)

The domain Decomposition Method is a powerful technique for solving large problems in science and engineering. Starting with benchmarking existing parallel codes on the UT HPC cluster, written in the FreeFEM framework and, after that going deeper into performance tuning certain Domain Decomposition implementations.
GPGPU – Generalpurpose computing on graphics processing units (EeroVainikko & Ulrich Norbisrath)
Using GPUs for computations to perform computation in applications traditionally handled by the CPU is an attractive way to speed up calculations. Multiple computational problems are of interest to try out using this technique.
Multiprecision arithmetic computations (Eero)
 Numerical methods utilizing mixedprecision arithmetic [2]
Some examples in interest:
Multiprecision arithmetics in preconditioning techniques in iterative solvers
[2] Abdelfattah, A., H. Anzt, E. Boman, E. Carson, T. Cojean, J. Dongarra et al., A Survey of Numerical Methods Utilizing Mixed Precision Arithmetic, Innovative Computing Laboratory University of Tennessee, Tech. Report, 2020