Third Party Funds Group - Overall project
Acronym: TRR 89
Start date : 01.07.2010
End date : 31.12.2022
Website: http://www.invasic.de
Invasive computing denotes a novel
paradigm for the design and programming of future parallel computing
systems. Its unique characteristic is to give a programmer explicit
handles to specify and argue about resource requirements desired, or
required in different phases of execution: Using an invade command, an
application may instruct the operating system to claim a set of
processor, memory and communication resources for being allocated for a
-by default- subsequent exclusive use. In an infect phase, the
application workload is then spread and executed on the obtained claim
of resources. A retreat command finally frees a claim again and the
application may resume sequential execution. To support this idea of
self-adaptive and resource-aware programming, not only novel programming
concepts, languages, compilers and operating system concepts had to be
developed from scratch, but also revolutionary architectural changes in
the design of MPSoCs (multiprocessor system-on-a-chip) including
mechanisms to allocate and isolate resources on demand.
Mission I:
Basic Principles and Invasive Efficiency. As major results of the first
funding phase, substantial gains in multicore utilisation and efficiency
have been shown to be achievable by only claiming resources when
necessary and retreating from them if not needed.
Mission II:
*-Predictability. A unique jewel of invasive computing is the inherent
capability to isolate even distributed applications from each other by
not sharing resources. This feature has shown to enable *-predictability
of non-functional qualities of program execution such as execution
time, throughput, but also safety and security properties. Using current
multicore platforms and operating systems, little if no support for
hardware and/or temporal isolation can be established on demand of an
application program. By exploiting the fact that resources may be
(temporally) claimed exclusively, we were able to show that
*-predictability may be enabled on program demand using invasive
computing which uses run-to-completion as the default mode of thread
execution, partial virtualisation and techniques for memory
reconfiguration and bandwidth guarantees on the designed invasible NoC.
Mission
III: Beating Run-Time Uncertainties and Run-Time Requirement
Enforcement. Not only the interferences caused when sharing resources
such as caches, processors and communication links as being the practice
today, makes the analysis of non-functional properties hard. The bounds
themselves or their variability might be much too large for any
practical use. Unfortunately, isolation alone does not help to reduce
the remaining uncertainty caused by input (problem size), environment
(e.g. temperature), and machine state (e.g., cache, power manager,
etc.). Our goal of phase III is therefore to close this missing link for
making multicore systems available to be used for the billion dollar
market of embedded and cyber-physical IoT products where application
programs require the strict or at least loose enforcement of tight
non-functional property ranges. Here, through the static analysis of
robustness and the automatic generation of verifiable run-time
requirement enforcer (RRE) modules (additional code that either locally
or globally observes and controls the satisfaction of requirements
within prescribed corridors) in combination with run-time requirement
monitoring (RRM), we expect to provide the missing link to successfully
combine resource awareness and tight predictability of non-functional
aspects of program execution on multicore platforms.
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.