Towards a scalable multi-kernel for heterogeneous processors

During the past decade, the hardware used in cloud and high-performance infrastructures has evolved much faster than we could have expected. Twenty years ago, these infrastructures relied on simple computers aggregating a Central Processing Unit (CPU), a memory and a network connected to an external storage system. Today, a computer is much more diverse and contains NUMA nodes, specialized accelerators (TPU, GPU), different levels of storage with different latencies and capacity (PMEM, NVMe, SSD), programmable network cards, FPGAs etc...

In this project, we have the goal of designing a new operating system tailored for these modern heterogenous machines. This operating system is designed as a multi-kernel: a set of independent kernels that run on the different devices and that uses message passing to collaborate. The project is at its early stage and the student will be in charge of designing and implementing the multi-kernel.

The student should have a good background in C and kernel programming.


Gaƫl Thomas, Mathieu Bacou