InvasIC: Sonderforschungsbereich/Transregio 89 — Invasives Rechnen
Invasives Rechnen bezeichnet ein neues Paradigma des Entwurfs und der Programmierung zukünftiger paralleler Rechensysteme. Das Grundprinzip besteht darin, parallelen Programmen die Fähigkeit zu verleihen, eine gewünschte oder benötigte Anzahl an Ressourcen dynamisch anzufragen und im Normalfall zur exklusiven weiteren Nutzung bereitgestellt zu bekommen. Nach paralleler Abarbeitung werden diese in einer als Rückzug bezeichneten Phase wieder freigegeben. Um diese neue Art der selbstadaptiven und ressourcengewahren Programmierung auf zukünftigen MPSoCs (engl. Multi-Processor-System-on-a-Chip) zu ermöglichen, mussten Programmier- und Sprachkonzepte sowie Übersetzer- und Laufzeit- bzw. Betriebssystemkonzepte überdacht und teilweise von Grund auf neu entwickelt werden. Im gleichen Maß wurden neue Prozessorarchitekturen entwickelt, die eine effiziente Rekonfiguration von sowohl Prozessor-, Verbindungs- als auch Speicher-Ressourcen in effizienter Art und Weise erlauben.
Mission I: Grundprinzipien und Invasive Effizienz. Als erste Ergebnisse der Forschung konnten substantielle Verbesserungen der Auslastung und Effizienz paralleler Programme nachgewiesen werden.
Mission II: *-Vorhersagbarkeit. Ein wahrhafter Juwel invasiven Rechnens liegt in der inhärenten Eigenschaft, Anwendungen gegeneinander zu isolieren (Vermeiden von Sharing). So lässt sich zeigen, dass invasive (selbst verteilt ausgeführte) Programme die Vorhersag-barkeit nichtfunktionaler Ausführungseigenschaften wie Ausführungszeit, Durchsatz, aber auch bestimmter Sicherheitseigenschaften herstellen bzw. deutlich steigern können. Heutige Plattformen unterstützen eine bedarfsgerechte Isolation von Anwendungsprogrammen in Raum oder Zeit wenig oder gar nicht. Durch Invasion werden Interferenzen hingegen bedarfsgerecht durch die exklusive Bereitstellung von Ressourcen weit reduziert bzw. aufgelöst. Unterstützt wird dies durch entwickelte Methoden zur partiellen Virtualisierung von Ressourcen, Techniken der Speicherrekonfiguration und invadierbare NoC-Strukturen.
Mission III: Beating Run-Time Uncertainties and Run-Time Requirement Enforcement.
Nicht nur Interferenzen zwischen Anwendungen durch das übliche Teilen von Ressourcen, wie Prozessoren, Caches und Bussen, vereiteln die Analyse von für den industriellen Einsatz akzeptablen Schranken. Oft ist aber auch die Variabilität nichtfunktionaler Eigenschaften nicht tolerabel. Leider hilft hier die Isolation allein nicht, verbleibende Unsicherheiten durch Eingabe (Problemgröße), Umgebung (z.B. Temperatur) und Maschinenzustand (z.B. Caches, Power-Management) zu reduzieren, wenn diese unabhängig arbeiten. Ziel der dritten Förderphase ist es daher, genau diese Lücke für den Einsatz von Multicore-Systemen im Milliarden schweren Markt eingebetteter und cyber-physikalischer IoT-Produkte zu schließen, da hier Anwendungsprogramme das Einhalten von Schranken an nichtfunktionale Eigenschaften erfordern. Untersucht werden daher Verfahren der Robustheitsanalyse sowie Verfahren zur automatischen Generierung von verifizierbaren sog. Enforcer-Modulen, die durch Korridore beschriebene Eigenschaften zur Laufzeit überwachen (RRM) und deren Einhaltung durchsetzen (RRE) sollen.
Mit dieser Forschung soll das letzte fehlende Bindeglied zwischen ressourcengewahrer Programmierung und gleichzeitiger Einhaltbarkeit programmspezifischer nichtfunktionaler Eigenschaften von parallelen Programmen auf Multicore-Systemen geschaffen werden.