System Software Project (MA)

In the SYSNAP master project we will deal with system-oriented programming of concurrency platforms in the summer semester 2023.

A concurrency platform is a combination of parallel programming languages and associated runtime systems. Since parallel programming is a necessary prerequisite to efficiently run current and especially future many-core systems (cf. "Free Lunch is Over", Dennard Scaling), concurrency platforms are essential. Prominent examples of concurrency platforms include Google's Go programming language (and its associated runtime system). In research, OpenCilk (MIT) or X10 (IBM) are to be mentioned here, for example. But also established languages with good support for parallel programming are undergoing a transformation to modernize towards concurrency platforms, e.g. Java's Loom project.

In this project, we will first look at the basic building blocks of concurrency. Then we will learn about the typical programming interfaces of concurrency platforms, such as fork/join parallelism, and use them practically. In the next step, we will dive one level deeper into the runtime system and will deal in particular with scheduling. This is the core of the runtime system and is largely responsible for its efficiency. Thereby, we will deal with "work-stealing scheduling", the predominant scheduling approach of concurrency platforms.

In the last third of the project, we will dive down another level and look at the interaction between the runtime system and the operating system. Although modern concurrency platforms can run without problems under current operating systems, we will see that these parallel runtime systems can only be operated optimally to a limited extent. This is partly due to the traditional synchronous operating system interface, but also due to a lack of functionality in the operating system. As part of the project, we are considering alternative approaches to improve the interaction between runtime system and operating system.

The master project is supervised by Florian Schmaus.