Who am I?

First name: Adrian
Last name: Schüpbach
E-Mail: adrian.schuepbach@gribex.net
Office: K042, Forschungslabor Zürich, Säumerstrasse 4, 8803 Rüschlikon
~: Igis/GR/CH + Winterthur/ZH/CH
PGP key: 3421 1AC0 9272 4283 161D 0F3C 8661 7EB1 F8F8 628E
[Research | Publications | Projects | Theses | Teaching ]

I am currently working at the IBM Zurich Research Laboratory (IBM Research) in the systems field. My main research areas include fast networks, including RDMA infiniband and RoCE networks, as well as fast I/O processing in general. I am also working on serverless programming and do research in the area on how to do machine learning or how to do inference on serverless platforms in an efficient way.

From 2013 to 2017 I was working at Oracle Labs on the Rapid project. I am also teaching at ETH, right now the lecture Programmieren und Problemlösen.

I did a PhD in Computer Science in the Systems Group at the Computer Science Department of ETH Zürich from 2007 to 2012 with Prof. Dr. Timothy Roscoe. My PhD thesis is about "Tackling OS Complexity with Declarative Techniques".

Before joining the group, I studied computer science at ETH Zürich and got my Diploma/MSc in 2007.

I did a lot of teaching, starting as a student, then as assistant at ETH and during the last years as lecturer at ETH Zurich. Some of the lectures can be found here: teaching.

Research Interests

My main research interests include operating systems design, high-speed networking (RDMA, Infiniband/RoCE), applying constraint logic programming techniques to hardware programming and resource management on multicore machines, serverless cloud computing, machine learning and systems aspects in many areas.



Serverless in the cloud/OpenWhisk

Currently I am investigating how OpenWhisk functions can leverage a fast distributed storage system like Crail for application data and potentionally for argument passing between function invocations in the case that IBM composer is being used.

Mira/Spark serverless

Mira is a scheduler for Spark applications on heterogeneous clusters. It replaces the original Spark scheduler. A new project, based on Mira, aims at keeping Spark executors running and being able to dynamically connect and disconnect to new Spark applications to keep them warm and reduce starting overheads significantly. I implemented the first version of Spark serverless and integrated this version with Mira.


Apache Crail (incubating) is a high-performance distributed data store for ephemeral data based on RDMA networking and NVMf devices. It uses DaRPC and DiSNI to enable high-performance communication over RDMA in Java. My main contribution is on performance analysis and improvement of the DaRPC and DiSNI layers.


GPFS is the general parallel file system, an IBM product. I mainly work on the RDMA subsystem, including implementation of features, bug fixes and customer support.


Barrelfish is a new operating system for heterogeneous many-core machines written from scratch. During my PhD I was building a system knowledge base (SKB) which contains detailed system and hardware information as declarative facts.

The SKB is used to gather detailed hardware information as well as runtime information about the system and running applications. Based on this information, declarative algorithms and queries derive valid hardware configurations as well as intelligent resource allocation policies. Being a central user-space service in Barrelfish, it has global knowledge about the complete state of the system. The system and applications can query the SKB at any time and run their own declarative algorithms based on the stored data.


Alpenrhein is a joint project with Michael Duller. We explore how an interface between the OS and the managed runtime system should look in terms of information flow in both direction to improve hardware resource utilization.

By extending the interface between the runtime system and the OS, legacy application written on top of the runtime system can benefit from modern manycore systems without modification.

Semantic information about the application within the runtime system provides deeper insight into a new or legacy application and allows the system to automatically derive resource needs in terms of memory, caches, cores and interconnect. Communication, synchronization, computation and memory allocation information is provided to the SKB which then gets a global view and can provide feedback to all running instances in the system.

We based our research on the Maxine JVM, a research Java Virtual machine developed at Oracle Labs and the Barrelfish OS.


Rhizoma is a self-managing overlay which deploys an application to a number of nodes in the internet or on a cluster based on application requirements. Additionally, Rhizoma manages itself by moving itself to nodes which have the necessary resources to run a controller.

In collaboration with Qin Yin, we implemented a prototype with algorithms implemented in Eclipse-CLP to derive the necessary resource allocation policies.

Supervised Theses and Labs


I like teaching a lot and regularly have the opportunity to prepare teaching material as well as standing in front of exercise classes and teach the material. Sometimes I had the opportunity to be a head assistant and organize the exercise sessions.

FS 2016 Programmieren und Problemlösen Exercises
FS 2015 Programmieren und Problemlösen Exercises
FS 2014 Programmieren und Problemlösen Exercises
HS 2012 AdvancedOperating Systems Exercise session
FS 2012 Operating Systems and Networks Exercise session
HS 2011 Computer Architecture and Systems Programming Exercise session
FS 2011 Operating Systems and Networks Exercise session
HS 2010 Computer Architecture and Systems Programming Exercise session
FS 2010 Operating Systems and Networks  
FS 2009 Computer Networks  
FS 2008 Computer Networks  
SS 2007 Computer Networks Exercise session
SS 2006 Computer Networks Exercise session
WS 2005/2006 Computer Architecture Exercise session

(c) by asq
Aktualisiert: 09.03.2019