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.