Data Processing On Modern Hardware

Information

The course takes place on Wednesdays (13:00-16:00) in English, and with physical presence.

Content

This course highlights some of the implications that current hardware trends have on database processing. Advances such as deep cache hierarchies or the use of hardware accelerators had a major impact on how we design and implement data processing algorithms and data structures. This lecture will show how carefully laying out data in memory and good algorithm design can increase the effectiveness of hardware caches; how we can speed up database operations by parallelizing on modern CPUs; how to achieve efficient synchronization for data structures; and how to leverage specialized instructions/accelerators (e.g., SIMD) for data processing. We are also going to take a look at offloading computation to programmable hardware devices (FPGAs), and see how we can benefit from novel network and storage technologies (RDMA and NVRAM).

More specifically, the topics we are going to cover are the following topics:

  • Writing efficient code for the memory hierarchy.
  • Parallelizing data-intensive tasks on multi-core CPUs.
  • Using efficient synchronization of data structures.
  • Leveraging modern hardware features and technologies for compute (e.g., SIMD processing, accelerators), network (e.g., RDMA), and storage (e.g., NVRAM).

Organization

  • 5 ECTS
  • SWS 2V + 2Ü
  • Lectures are held in English
  • The lecture slot is on Wednesdays between 13:00 am - 14:30 am at E.126, Hörsaal IMETUM (5701.EG.026)
  • The tutorial is held on Wednesdays from 14:30 am - 16:00 pm at 00.04.011, MI Hörsaal 2 (5604.EG.011)
  • For the Gitlab repository see Moodle/Mattermost.
  • For the Mattermost channel see Moodle/Gitlab.
  • Bonus will be given to students who do the exercise assignments and project work.

Prerequisites

The course is aimed at Master-level students who have solid systems programming experience in C/C++ and have already taken the following (or similar) courses:

  • Introduction to Databases
  • Introduction to Computer Architecture
  • Advanced Computer Architecture

Material

Literature

This is not a standard course (i.e., there is no real textbook). Most material is taken out of research papes, which will be referenced in the slides. However, the following list can be useful either as background or complementary reading.