Prof. Dr. Tilmann Rabl

Hardware-Conscious Data Processing


Prof. Dr. Tilmann Rabl, Lawrence Benson, Marcel Weisgut


Hardware development continuously advances, with different technologies improving at different paces. While the number of transistors in a CPU package grows, the single-core performance stagnates due to physical limitations. These trends require changes in data processing to keep database management systems efficient. In this lecture, we will take a look at current computer architectures and accelerator technologies and how they can be used for efficient data processing. We will cover CPU and memory architecture; the storage hierarchy; modern memory technologies, such as NVM and NVMe; fast interconnects, such as Infiniband, NVLink, and CXL; and accelerators, such as GPUs and FPGAs. The course has a significant practical part, where the students learn to implement data structures and algorithms tailored to hardware conscious data processing.


  • Structured Computer Organization, Andrew S. Tanenbaum, Todd Austin, 2012, 978-0132916523
  • A Course in In-Memory Data Management: The Inner Mechanics of In-Memory Databases, Hasso Plattner, 2014, 978-3642552694


  • Course management will be done using the HPI Moodle
  • The lectures will be held on-site at HPI
  • Non-HPI participants: please send us an email to get access to the Moodle
  • All lectures are recorded and available in Tele-Task

Schedule (tentative) 

The lectures will be held on Tuesdays (L.E-03) and Wednesdays (L.E-03) at 11:00 o'clock.

18.04.2023Introduction (Room F-E.06)
19.04.2023Database Basics (Room F-E.06)
... rest of schedule in Moodle



The programming tasks determine 100% of the grade, there is no final exam. In addition to the graded tasks, each student will present their solution for one task in a short individual meeting with the teaching team. We will randomly select students for each current task throughout the semester. This discussion will make up 20% of the final grade. The programming tasks will be 20% each.


This course is aimed towards students with knowledge in database and/or big data systems. Ideally, students have attended at least one of Big Data Systems, Distributed Data Management, Database Systems II, or similar. The programming tasks are all in C++, so students should be comfortable with it. We provide a small example task (see Example Coding Task in Moodle) that students can do before the course to see whether they are comfortable with C++. If you are not able to solve this task, you will probably have a very hard time in the course, as this is the very minimum level needed to complete the other tasks.