UNIVERSITÄT OSNABRÜCK
Computer Science Institute
Embedded Software Systems
COMPUTER SCIENCE INSTITUTE
Embedded Software Systems
Overview Concepts Team Publications Student theses
Overview

MxKernel: A Bare-Metal Runtime System for Database Operations on Heterogeneous Many-Core Hardware

Project context

Overview

It is quite remarkable how Moore’s Law still prevails after more than half a century. Its consequences, however, have become very intricate. Rather than ever-increasing single-thread performance, today’s hardware provides performance improvements in the form of high degrees of parallelism, increasingly paired with growing heterogeneity. Beyond the need to express algorithms in a parallel and, ideally, re-targetable way, the hardware trends shift performance bottlenecks toward communication and synchronization across a pool of diverse resources. Hard- and software must tightly cooperate to achieve performance in this new world.

With MxKernel, we set out to re-think the interplay of hardware, system software, and applications in the light of the shifting hardware landscape and the tremendously growing demands on data processing capabilities. Classical system designs build on rigid interfaces that strictly separate concerns, e.g., between the “operating system”—in charge of managing resources—, the DBMS—responsible for managing data—, and applications, which are supposed to implement logic in a resource-oblivious way. Such a separation can hardly address the challenges that come with modern hardware. Applications have to jump through hoops to leverage modern hardware features. Classical system software stacks, on the other end, know very little about the actual characteristics and needs of individual applications. Under these premises, resource management essentially becomes a blind flight.

A key design goal of MxKernel, therefore, is to much better exchange such knowledge between the resource manager and the code running on top. We argue that threads are a poor basis to express the relevant knowledge. On commodity hardware, they are too course-grained; resource access patterns often change considerably over the lifetime of a thread. In a heterogeneous environment, featuring, e.g., FPGAs and/or GPUs, “threads” might not even have a sensible meaning in some of the hardware components. In MxKernel, the principal unit of reasoning are tasks—or MxTasks—instead. Tasks represent a unit of work to the system. Code-wise, they tend to be much smaller than classical threads; the equivalent of a single classical thread may fire a number of MxTasks in MxKernel. Since they relate to a very specific unit of work, tasks are a good abstraction for metadata that describes the characteristics of the unit.

The results of our research in the first funding period have been promising, but were obtained with small-scale benchmarks in a limited set of usage scenarios. Therefore, we plan to widen the set of supported application classes for a more systematic and comprehensive analysis. We also want to dig deeper into some of the findings and, hopefully, reap the fruits of our work in the first project phase. While we strive for finding an ideal system software architecture for future data processing needs, we also think about a migration path for existing system software. By learning on how to use contemporary computing hardware most efficiently, how to design system software interfaces that have the ability to gain knowledge on future application behavior, and the respective system software strategies, we can also improve the state-of-the-art incrementally.

News

29/09/2023
Michael Müller gave a talk about Managing Resources in the Data-Center with the MxKernel at the 2023 autumn meeting of the Operating Systems SIG in Bamberg, Germany.
28/09/2023
The poster "The MxKernel ­— A System Software Architecture for Warehouse-scale Computers" has been accepted to appear at the poster session at the 29th ACM Symposium on Operating System Principles (SOSP).
18/06/2023
Jan Mühlig and Jens Teubner's paper on Micro Partitioning: Friendly to the Hardware and the Developer has been published at 19th International Workshop on Data Management on New Hardware (DaMoN). The paper showcases an additional usecase where the MxTask abstraction proves beneficial for performance as well as easing development of databases.
03/04/2023–06/04/2023
Michael Müller presented the MxKernel project on a poster at the 3rd Winter School on Operating Systems.
30/03/2023
A new version of EalánOS, the MxKernel prototype operating system, has been published onGitHub. The new versions introduces an interface for accessing hardware performance counters including support for those of AMD's first-generation Zen microarchitecture.
16/03/2023
Michael Müller is going to present his research in the MxKernel project at 3rd Winter School on Operating Systems.
05/02/2023
Michael Müller presented his talk on how the Genode OS Framework can assist OS researchers at writing research operating systems using the MxKernel project as an example.
15/12/2022
Michael Müller is going to present how Genode enabled the development of the EalánOS research operating system at FOSDEM'23 in Brussels, Belgium.
01/12/2022
As part of the MxKernel project Marcel Lütke Dreimann added virtualization support for OpenCL kernels on Intel GPUs to our fork of Genode. The virtualization support is based on our native GPGPU driver for Intel's integrated GPUs.
20/10/2022
A basic prototype, named EalánOS, based on MxTasking, the Genode OS Framework and a fork of the NOVA microhypervisor is now available on GitHub.
30/06/2022
The MxKernel migrated to the Genode OS Framework as foundation for the future prototype. Major reasons for the change are the driver infrastructure provided by Genode as well as the lower code-complexity and strictly component-based design, which greatly improved our implementation efforts.
03/12/2021
The task-based runtime environment MxTasking, an integral part of the MxKernel architecture, has been released to the public under the MIT license.
23/09/2021–24/09/2021
The annual meeting of the priority program 2037 took place in Erlangen, Germany.
21/09/2021–22/09/2021
Michael Müller gave a talk about system models for disruptive memory technologies. The talk has also been published as a short paper in the library of the German Informatics Society (GI) under the title First Things First: A Discussion of Modelling Approaches for Disruptive Memory Technologies.
30/03/2021–31/03/2021
Olaf Spinczyk was invited to give a talk about his work on the MxKernel project at Huawei Systems Software Innovation Summit 2021. The recorded video of the talk can still be watched until June 2021 at this link.
12/03/2021
Olaf Spinczyk held a talk about the MxKernel project on the semianual meeting of the GI Fachgruppe Betriebssysteme.
11/03/2021
The paper MxTasks: How to Make Efficient Synchronization and Prefetching Easy has been accepted for publication at SIGMOD 2021.
09/03/2021–10/03/2021
First PhD workshop in the second phase of the priority program 2037.
05/03/2021
The article Developing Bare-Metal GPGPU Drivers From Scratch: What prevents scientists from developing own GPGPU drivers? has been published in the Tagungsband des FG-BS Frühjahrstreffens 2021.
06/11/2020
Kickoff meeting for the second phase of the priority program 2037.
14/09/2020
The article MxKernel: A novel System Software Stack for Data Processing on Modern Hardware has been accepted for publication in the journal Datenbank-Spektrum.
September 2020
The MxKernel project has been accepted for the second funding period of the priority program 2037.
07/07/2020–08/07/2020
Final meeting of the priority program 2037 in the first funding period.
05/09/2019–06/09/2019
Third annual meeting of the priority program 2037 in Erfurt.
05/06/2019–06/06/2019
The second Ph.D. Meeting of the priority program 2037, with workshops to various topics of interrest, took place at the DFKI in Berln.
03/06/2019
The chapter Operating systems for many-core systems in the book "Many-core Computing: Hardware and Software" has been published by the IET.
05/03/2019
Semi-annual SPP meeting in Rostock.
28/02/2019
The paper “More or Less? A Discussion About the Abstraction Level of Future Operating Systems” has been accepted at the first NGOSCPS Workshop at CPS-IOT Week 2019.
10/02/2019
The paper "MxKernel: Rethinking Operating System Architecture for Many-core Hardware" has been accepted to appear at the SFMA'19 Workshop.
20/12/2018
The paper "LockDoc: Trace-Based Analyisis of Locking in the Linux Kernel" has been accepted at EuroSys'19 and will be published in the proceedings.
17/09/2018–18/09/2018
Annual meeting of the priority program 2037 in Dortmund.
25/06/2018–26/06/2018
First Ph.D. Meeting of the priority program 2037 with presentations of the work of the Ph.D. students, involved in the program.
22/05/2018–25/05/2018
Jan Mühlig presented his paper "B-link-trees for DB/OS-Co-Design" at the GI-Workshop Grundlagen von Datenbanken.
01/03/2018–02/03/2018
Semi-annual meeting of SPP2037 in conjuction with the Symposium on Modern Database Platforms in St.Leon-Rot.
28/08/2017
Kickoff Meeting of the priority program "Scalable Data Management for Future Hardware" (SPP2037).