The goal of this course is to familiarize you with the modern hardware stack present in clouds and datacenters. This is an important goal because, to be able to build and maintain efficient data processing systems (e.g., database management systems, streaming analytics pipelines, machine learning training, etc.), an in-depth understanding of the modern hardware is necessary.

This lecture provides a complete view of the cloud hardware architecture and programming aspects from a software systems aspect and shows how to utilise them best. Throughout the semester we will cover the wide spectrum of hardware which is used today in cloud data centers such as:

  • multi-core and multi-socket CPUs
  • flash-based storage stacks
  • user-space networking
  • RDMA and programmable networks
  • GPUs and specialized hardware-based accelerators

In addition to the in-depth presentation of how these hardware components are designed and how they work, you will also acquire hands-on experience in programming for them in several coding labs as part of the lecture.