European Master in Software Engineering

Building Data Processing Systems with FPGAs (Reading Group)


This seminar is aimed at students who are familiar from their earlier studies with FPGAs and would like to learn about use-cases beyond the traditional ones of embedded computing and signal processing. To this end, we will explore together the novel trends in the area of hardware accelerators for databases and Cloud-scale data processing systems. Additionally, we will discuss how the inclusion of specialized hardware in complex software systems changes the ways we think of software engineering and development. We will cover topics related to database, machine learning and distributed system acceleration using FPGAs. We will discuss their benefits, drawbacks, and potential research challenges together in a reading group.


The seminar is structured like a reading group. We will start with an overview of FPGAs (as a refresher), common ways that they are integrated into software systems (on-the-side, in-line and co-processor) and their current deployment landscape in the datacenter (for instance, Amazon F1 or Microsoft Catapult). Then, in turns, students will have to read an assigned research paper and present it in class to the others after which a discussion will follow.

Assessment Method

- Presence at meetings: 40% - Paper presentation: 40% - Participation in discussions: 20%


- Basic understanding of FPGA programming (at least one introductory course in your Bachelor's!) - Basic understanding of computer architecture - Basic understanding of databases




The course will take place at IMDEA Software Institute, in the Montegancedo Campus.

Recommended Reading

- FPGA: What’s in it for a Database? R. Mueller et al. ( - Azure Accelerated Networking: SmartNICs in the Public Cloud. D. Firestone et al. ( - Caribou: Intelligent Distributed Storage. Z. Istvan et al. (


Web site:

Lecture Theatre

Imdea Software Insitute

Tuition Language




Subscription to this seminars:: To subscribe to the selected seminars, please, fill in this fields (use only your UPM email)::