Masterprojekt Systemnahe Programmierung

Im SYSNAP-Masterprojekt werden wir uns im Sommersemester 2023 mit der systemnahen Programmierung von Nebenläufkeitsplattformen beschäftigen.

Als Nebenläufigkeitsplattform bezeichnet man die Kombination von parallelen Programmiersprachen und zugehörigen Laufzeitsystem. Da die parallele Programmierung eine notwendige Voraussetzung ist, um heutige und insbesondere zukünftige Vielkernsysteme (vgl. "Free Lunch is Over", Dennard Scaling) effizient zu betreiben, sind Nebenläufigkeitsplattformen von essenzieller Bedeutung. Prominente Beispiele für Nebenläufigkeitsplattformen sind zum Beispiel Googles Programmiersprache Go (und das zugehörige Laufzeitsystem). In der Forschung sind hier z.B. OpenCilk (MIT) oder X10 (IBM) zu nennen. Aber auch etablierte Sprachen mit guter Untersützung für paralleles Programmieren durchlaufen eine Transformation zur Modernisierung in Richtung Nebenläufigkeitsplattform, z.B. Javas Projekt Loom.

Im Rahmen des Projektes werden wir uns zuerst mit den grundlegenden Bausteinen von Parallelität beschäftigen. Danach lernen wir die typischen Programmierschnittstellen von Nebenläufkeitsplattformen, wie zum Beispiel Fork/Join Parallelismus kennen, und werden diese praktisch verwenden. Im nächsten Schritt tauchen wir eine Ebene tiefer in das Laufzeitsystem ein und werden uns insbesondere mit der Ablaufplanung auseinandersetzen. Diese bildet den Kern des Laufzeitsystems und ist maßgeblich für dessen Effizienz verantwortlich. Dabei werden wir uns mit "Work-Stealing Scheduling" befassen, dem vorherrschenden Ablaufplanungsansatz von Nebenläufigkeitsplattformen.

Im letzten Drittel des Projektes werden tauchen wieder nochmals eine weitere Ebene tiefer ab und betrachten das Zusammenspiel von Laufzeitsystem und Betriebssystem. Zwar sind Moderne Nebenläufigkeitsplattformen problemlos unter aktuellen Betriebssystemen lauffähig, allerdings werden wir sehen, dass diese parallelen Laufzeitsysteme nur bedingt optimal betrieben werden können. Das liegt zum einen an der traditionellen synchronen Betriebssystemschnittstelle, aber auch an fehlender Funktionalität im Betriebssystem. Als Teil des Projektes überlegen wir uns alternative Ansätze, um das Zusammenspiel von Laufzeitsystem und Betriebssytem zu verbessern.

Das Masterprojekt wird von Florian Schmaus betreut.