Hide menu
PELAB

OPEN MASTER THESIS PROJECTS

Research Group on Compiler Technology and Parallel Computing

Prof. Christoph Kessler

Internal Thesis Projects

Note:

All projects in this list require a solid background in either compiler construction or parallel programming (some both); at least one major course (preferably at master level including programming labs) in these areas should be passed successfully.

Note to non-LIU students (FAQ): If you want to do a thesis project with us, you must be registered on a master (or bachelor) program at Linköping university. It is generally not possible to do such projects remotely.

  • Skeleton Computing for Reconfigurable Architectures (30hp)

    SkePU is a C++ based open-source skeleton programming library for portable high-level programming of heterogeneous multicore systems, being developed by our group at Linköping University in the context of several EU projects. The different back-ends (basically, implementation variants) provided for the SkePU skeletons allow it to support different types of processing units (PUs), which also opens for automated tuning of the execution flow by selecting the expected fastest implementation at runtime depending on the execution context. The public SkePU distribution currently supports multicore CPUs and GPUs, and there are also experimental back-ends for MPI and for Movidius Myriad1 developed in previous thesis projects.
    In this master thesis project you will extend the SkePU programming framework by a back-end targeting a reconfigurable architecture using the toolchain of an international cooperation partner. For further information please contact me directly.
    Prerequisites: Some background in parallel computer architecture and FPGA architecture. A course with completed programming labs in parallel and GPU programming (e.g. TDDD56), advanced C++ programming skills, basic knowledge of Java.

  • Smarter Containers in SkePU (30hp)

    SkePU is a C++ based open-source skeleton programming library for portable high-level programming of heterogeneous multicore systems, being developed by our group at Linköping University in the context of several EU projects. The different back-ends (basically, implementation variants) provided for the SkePU skeletons allow it to support different types of processing units (PUs), which also opens for automated tuning of the execution flow by selecting the expected fastest implementation at runtime depending on the execution context. The public SkePU distribution currently supports multicore CPUs and GPUs, and there are also experimental back-ends for MPI and for Movidius Myriad1 developed in previous thesis projects.
    An important feature in SkePU are the so-called smart containers, currently Vector and Matrix, which are generic, STL-like abstractions of aggregate data that transparently perform optimizations of data transfer and memory management at runtime, implementing a generalized software caching scheme with sequential memory consistency. For details, see a recent article or Chapter 4 of Dastgeer's PhD thesis.
    In this project you will extend the smart container idea and implementation to include multiple different representations of data that have different performance implications on different types of execution units (e.g. CPU, GPU). For further information please contact us directly.
    Prerequisites: Multithreaded (OpenMP) and GPU (CUDA, OpenCL) programming (e.g. TDDD56), advanced C++ programming skills, interest in data structures, algorithms, and parallel computer architecture.

  • Smart Copying Techniques for Smart Matrix Containers in SkePU (30hp)
    An important feature in SkePU are the so-called smart containers, currently Vector and Matrix, which are generic, STL-like abstractions of aggregate data that transparently perform optimizations of data transfer and memory management at runtime, implementing a generalized software caching scheme with sequential memory consistency. For details, see a recent article or Chapter 4 of Dastgeer's PhD thesis.
    At read or write accesses to vector/matrix elements, smart containers may trigger data copy operations to update stale local copies of elements before being accessed. For that, a copy plan is calculated to reduce transfer costs. However, the current solution and implementation for 2D data (Matrix container) still has ample room for improvements. In this project you will develop, implement and evaluate smart copying techniques to speed up the coherence copying operations at submatrix accesses.
    This is a research-oriented project. If the result looks publishable, we will encourage you to jointly write and submit a research paper to a conference and support your presentation.
    Prerequisites: Multithreaded (OpenMP) and GPU (CUDA, OpenCL) programming (e.g. TDDD56), advanced C++ programming skills, interest in optimization.

  • A Testing Methodology and Framework for High-Level Parallel Programs (30hp)
    This thesis project will develop a methodology for systematically testing programs using skeletons and other high-level constructs for execution on heterogeneous parallel systems.
    This is a research-oriented project. If the result looks publishable, we will encourage you to jointly write and submit a research paper to a conference and support your presentation.
    Prerequisites: Multithreaded (OpenMP) and GPU (CUDA, OpenCL) programming (e.g. TDDD56), advanced C++ programming skills; good background in software engineering, esp. software testing. Linux.

  • [TAKEN] Dynamic Optimization of Interprocessor Communication in the MPI Back-End of the SkePU skeleton programming library (30hp)
    By harnessing the computational power of modern GPUs via General-Purpose Computing on Graphics Processing Units (GPGPU), very fast calculations can be performed with a GPU cluster.
    This thesis project is about extending an existing MPI cluster back-end implementation of the SkePU skeleton programming library by data types that allow for the dynamic optimization of inter-node communication, and evaluating the implementation with several test programs including a computationally intensive application.
    The overall problem includes developing methods for determining the optimal partitioning of the problem, automated performance tuning for the best use of resources, possibly in a non-dedicated environment; also, devising new SkePU skeletons for some computations / communication patterns in the considered scientific computing problem. An application from computational fluid dynamics will be used as a case study.
    This Master thesis project covers the following tasks:
    - Research survey of related work.
    - Design and implementation of new skeleton backends in C/C++, MPI and CUDA/OpenCL.
    - Skeleton-based refactoring of the given benchmark application and experimental evaluation.
    - Documentation of the results in thesis report.
    Begin: ASAP.
    Prerequisites: Courses in programming of parallel computers and GPU computing (TDDC78 and TDDD56 or equivalent). Good background in OpenCL, CUDA, MPI, C/C++, algorithms, Linux.
    Contact: Christoph Kessler.

Further thesis projects in compiler technology and parallel programming
on request (chrke at ida.liu.se).


External Thesis Projects

in cooperation with local industry partners
  • Performance optimization of security functions in IoT devices (30hp)

    See separate project description. In cooperation with Ericsson Research, Lund.
    Prerequisites: Solid background in computer networks, security, embedded systems, multicore architecture and programming, compilers, and C/C++. Ability to work independently.


Back to my master thesis students page

More thesis projects at PELAB



Responsible for this page: Christoph Kessler, IDA

Page responsible: Webmaster
Last updated: 2019-01-22