Instructors
Prof. Dr. Tilmann Rabl, Lawrence Benson, Marcel Weisgut
Description
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.
Literature
- 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
Announcements
- 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.
Date | Topic |
---|
18.04.2023 | Introduction (Room F-E.06) |
19.04.2023 | Database Basics (Room F-E.06) |
... | rest of schedule in Moodle |
Grading
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.
Prerequisites
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.