About Me

Reto Achermann

PhD Student, Systems Group, Department of Computer Science, ETH Zurich

My name is Reto Achermann. I graduated from ETH Zurich in 2014 with a MSc in Computer Science with specialization in Distributed Systems. Currently, I doing my PhD in the Systems Group, Department of Computer Sience, ETH Zurich. My advisor is Prof. Timothy Roscoe.

barrelfish logo I am part of the Barrelfish team. Barrelfish is a research operating system with a distinct architecture called the multikernel. Barrelfish treats a single machine as a distributed system. My work involves several device drivers such as USB, DMA engines and the Xeon Phi co-processor. My key interest is how to program modern, heterogeneous multiprocessors. A multi-core is inherently complex showing many similarities to distributed systems. Therefore we need to treat multi-core machines as such and hence rethink the way we write software for a multi-core machine to account for interconnect networks, NUMA regions and even failures.



  • Reto Achermann, Lukas Humbel, David Cock, Timothy Roscoe Physical addressing on real hardware in Isabelle/HOL. June 2018. 9th International Conference on Interactive Theorem Proving (ITP'18), Oxford, United Kingdom. [ .bib ] [ .pdf ]
  • Lukas Humbel, Reto Achermann , David Cock, Timothy Roscoe Towards Correct-by-Construction Interrupt Routing on Real Hardware . October 2017. 9th Workshop on Programming Languages and Operating Systems (PLOS'17), Shanghai, China. [ .bib ] [ .pdf ]
  • Reto Achermann (ETH Zurich); Chris Dalton, Paolo Faraboschi (Hewlett Packard Labs); Moritz Hoffmann (ETH Zurich); Dejan Milojicic, Geoffrey Ndu (Hewlett Packard Labs); Alexander Richardson (University of Cambridge); Timothy Roscoe (ETH Zurich); Adrian L. Shaw (Hewlett Packard Labs); Robert N. M. Watson (University of Cambridge) Separating Translation from Protection in Address Spaces with Dynamic Remapping . Mai 2017. 16th Workshop on Hot Topics in Operating Systems (HOTOS'XVI), Whistler, British Columbia, Canada. [ .bib ] [ .pdf ]
  • Reto Achermann, Lukas Humbel, David Cock and Timothy Roscoe ETH Zurich. Formalizing Memory Accesses and Interrupts . April 2017. 2nd Workshop on Models for Formal Analysis of Real Systems (MARS 2017), Uppsala, Sweden, . [ .bib ] [ .pdf ]
  • Stefan Kaestle, Reto Achermann, Roni Haecki, Moritz Hoffmann, Sabela Ramos, and Timothy Roscoe, ETH Zurich. Machine-Aware Atomic Broadcast Trees for Multicores . November 2016. 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI'16). [ .bib ] [ .pdf ]
  • Izzat El Hajj (University of Illinois at Champaign-Urbana), Alexander Merritt (Georgia Institute of Technology), Gerd Zellweger (ETH Zurich), Dejan Milojicic (Hewlett Packard Labs), Reto Achermann (ETH Zürich), Wen-Mei Hwu (University of Illinois at Champaign-Urbana), Karsten Schwan (Georgia Institute of Technology), Timothy Roscoe (ETH Zurich), and Paolo Faraboschi (Hewlett Packard Labs) SpaceJMP: Programming with Multiple Virtual Address Spaces . April 2016. 21th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XXI). [ .bib ] [ .pdf ]
  • Stefan Kaestle, Reto Achermann and Timothy Roscoe, ETH Zurich; Tim Harris, Oracle Labs, Cambridge. Shoal: Smart Allocation and Replication of Memory For Parallel Programs . July 2015. 2015 USENIX Annual Technical Conference. [ .bib ] [ .pdf ]
  • Simon Gerber, Gerd Zellweger, Reto Achermann, Kornilios Kourtis, Timothy Roscoe ETH Zurich; and Dejan Milojicic (HP Labs, Palo Alto). Not Your Parents' Physical Address Space. May 2015. 15th Workshop on Hot Topics in Operating Systems (HotOS XV). [ .bib ] [ .pdf ]


  • Reto Achermann, Maurice Bailleu, Dejan S. Milojicic and Gabriel Parmer Interoperable capabilities. WO2017131789A1. January 2016. [ .WWW ]
  • Izzat El Hajj, Alexander Merritt, Gerd Zellweger, Dejan S. Milojicic and Reto Achermann Memory management with versioning of objects. WO2017131789A1. January 2016. [ .WWW ]


Formal Hardware Model

State: Ongoing

Reto Achermann, Lukas Humbel, David Cock, Timothy Roscoe

The hardware/software boundary in modern heterogeneous multicore computers is increasingly complex, and diverse across different platforms. A single memory access by a core or DMA engine traverses multiple hardware translation and caching steps, and the destination memory cell or register often appears at different physical addresses for different cores. Interrupts pass through a complex topology of interrupt controllers and remappers before delivery to one or more cores, each with specific constraints on their configurations. System software must not only correctly understand the specific hardware at hand, but also configure it appropriately at runtime.

[ Code on Github ]


State: Completed

Stefan Kaestle, Reto Achermann, Roni Haecki, Moritz Hoffmann, Sabela Ramos and Timothy Roscoe, ETH Zurich

The performance of tree-based group communication primitives such as broadcasts and reductions highly depend on the tree topology and and message send order. Furthermore, there is no single topology which works well across a wide variety of machines. In this project, we present Smelt a framework that contstructs good trees for any machine.

[ Code ] [ Results ]


State: Completed

Stefan Kaestle, Reto Achermann, Timothy Roscoe, ETH Zurich; Tim Harris, Oracle Labs Cambridge. February 2014.

Modern machines feature highly complex memory hiearchies and NUMA topologies which makes it hard for programmers to allocate and manipulate memory. We present Shoal, a runtime library for smart memory allocation based on data access patterns and hardware characteristics.

[ Read More ]


Hewlett Packard Laboratories, Palo Alto (CA)

September 2015 - December 2015

Systems Research Group. Consensus protocols in the context of The Machine.


BSc Computer Science, ETH Zurich

2009 - 2013

Reto Achermann. Barrelfish USB Subsystem . Bachelor's thesis, ETH Zurich, August 2013. [ .pdf ]

MSc Computer Science, ETH Zurich

2013 - 2014, Specialization: Distributed Systems, with distinction

Reto Achermann. Message passing and bulk transport on heterogenous multiprocessors. Master's thesis, ETH Zurich, October 2014. http://dx.doi.org/10.3929/ethz-a-010262232


multiprocessors operating systems networks heterogeneous architectures systems programming accelerators devices

Systems Programming and Computer Architecture

Fall 2016

Introduction to computer architecture and system programming: Instruction sets, storage hiearchies, runtime structures with an emphasis on computers as engines for the execution of compiled programs. Interaction between system software and the hardware. Problems that arise from the final respresentation, performance measurement and tuning, and program portability issues are covered.
Course Catalogue

Introductory Programming in MATLAB

Spring 2016, Spring 2017

The lecture "Introductory Programming in MATLAB" provides a basic knowledge about imperative programming. Additionally, the students learn how to apply imperative programming in modeling of domain specific systems.
Course Catalogue

Parallel Programming

Fall 2015

Introduction to parallel programming: deterministic and non-deterministic programs, models for parallel computation, synchronization, communication, and fairness.
Course Catalogue

Data Modelling and Data Bases

Spring 2014

Data modelling (ER and UML class diagrams), relational data model, relational design theory (normal forms), SQL, database integrity, security, transactions and data warehousing (OLAP)
Cource Catalogue

Supervised student thesis and lab projects

Explicit OS support for hardware threads

State: Completed

Andrei Poenaru. ETH Zurich. Masters's thesis. March 2017.   [ .pdf ]

Performance analysis and support of SMT threads in the Barrelfish cpu driver.

Dynamic Linking and Loading in Barrelfish

State: Completed

David Keller. ETH Zurich. Bachelor's thesis. August 2015.   [ .pdf ]

Design and implementation of dynamic linking support in the Barrelfish Operating system.


Reto Achermann

acreto [at] inf.ethz.ch

+41 44 633 70 15

Dept. of Computer Science
CAB E 69, ETH Zürich
Universitätstrasse 6
8092 Zürich