Theses

Theses theme proposals:

Parallel implementation of Domain Decomposition Methods; wave propagation problems (sup. Eero Vainikko)

GPU-accelerated Block-GMRES method (sup. Eero Vainikko, Mohammad Anagreh)

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 fast-developing 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 sub-themes are (not limited to) as follows:

  • 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 fault-tolerance by choreographic design in Erlang
    There is an implementation of fault-tolerance 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.

  • Reversibility implementation within MPI (Message Passing Interface) programs
    A starting point for this topic is here: https://www.open-mpi.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 fault-tolerant 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/978-3-030-47361-7_2
 

Parallel implementation of Domain Decomposition Methods for wave propagation problemsand their performance testing (sup . Eero Vainikko)

  • Domain Decomposition Method is a powerful technique for solving large problems in science and engineering. Starting with benchmarking some existing parallel codes on UT HPC cluster and thereafter going deeper into performance tuning of certain Domain Decomposition implementations.

GPGPU - General-purpose 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 mixed-precision 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