Accelerating Databases using SIMD
Modern database system developers face two significant challenges.
On the one hand, database engines must provide sustainable high performance.
On the other hand, a database system should be able to run on a multitude of hardware platforms and facilitate the existing hardware-provided acceleration features to their full extent.
One prominent example of modern acceleration capabilities is the Single-Instruction-Multiple-Data (SIMD) paradigm, which is an integral part of state-of-the-art database systems.
However, every architecture (e.g., x86, ARM, Power, NEC Aurora TSUBASA) has its signature functional capabilities and libraries.
To cope with the heterogeneity, we designed and developed a hardware-abstraction library for SIMD functionality and an associated generator framework at the chair of databases.
Currently, our library is written in C++ using template metaprogramming.
The generator is written in python using Jinja2 for the actual generation.
We are looking for motivated students to contribute to either the library itself or the generator, including but not limited to prototyping and testing the developed code.
But fear not! You won’t be left alone. We are highly committed to this project and thus offer our unlimited expertise and guidance throughout the whole process.
Possible projects may include:
- Conceptual design and implementation of a RUST backend for the generator
- Transformation of simdified DB algorithms from a commercial database system (joint work with SAP HANA) and necessary extension of our library
- RePair 
- Bitvector Operations
- Adding new backends (IBM Power, Intel Stratix 10/Agilex FPGA via OneAPI)
- Further development of the generator framework (integrated benchmarking, cost model design)
Either of these topics can contribute to the following modules:
- INF-D-950 (Großer Beleg)
- Komplexpraktikum / Masterpraktikum
- Thesis (B.Sc., M.Sc., Dipl.)