Anantharajaiah, Nidhi, Asfour, Tamim, Bader, Michael, Bauer, Lars, Becker, Jürgen, Bischof, Simon, Brand, Marcel, Bungartz, Hans-Joachim, Eichler, Christian, Esper, Khalil, Falk, Joachim, Fasfous, Nael, Freiling, Felix, Fried, Andreas, Gerndt, Michael, Glaß, Michael, Gonzalez, Jeferson, Hannig, Frank, Heidorn, Christian, Henkel, Jörg, Herkersdorf, Andreas, Herzog, Benedict, John, Jophin, Hönig, Timo, Hundhausen, Felix, Khdr, Heba, Langer, Tobias, Lenke, Oliver, Lesniak, Fabian, Lindermayr, Alexander, Listl, Alexandra, Maier, Sebastian, Megow, Nicole, Mettler, Marcel, Müller-Gritschneder, Daniel, Nassar, Hassan, Paus, Fabian, Pöppl, Alexander, Pourmohseni, Behnaz, Rabenstein, Jonas, Raffeck, Phillip, Rapp, Martin, Rivas, Santiago Narváez, Sagi, Mark, Schirrmacher, Franziska, Schlichtmann, Ulf, Schmaus, Florian, Schröder-Preikschat, Wolfgang, Schwarzer, Tobias, Sikal, Mohammed Bakr, Simon, Bertrand, Snelting, Gregor, Spieck, Jan, Srivatsa, Akshay, Stechele, Walter, Teich, Jürgen, Turan, Furkan, Ureña, Isaías A. Comprés, Verbauwhede, Ingrid, Walter, Dominik, Wild, Thomas, Wildermann, Stefan, Wille, Mario, Witterauf, Michael, and Zhang, Li
Invasive computing is a paradigm for designing and programming future parallel computing systems. For systems with 1,000 or more cores on a chip, resource-aware programming is of utmost importance to obtain high utilisation as well as computational, energy and power efficiency. Invasive computing provides a programmer explicit handles to specify and argue about resource requirements desired or required in different phases of execution: In an invade phase, an application asks the operating system to allocate a set of processor, memory and communication resources to be claimed. In a subsequent infect phase, the parallel workload is spread and executed on the obtained claim of resources. Finally, if the degree of parallelism should be lower again, a retreat operation frees the claim again, and the application resumes a sequential execution. To support this idea of self-adaptive and resource-aware programming, not only new programming concepts, languages, compilers, and operating systems were needed to be developed, but also revolutionary architectural changes in the design of MPSoCs (multiprocessor systems-on-a-chip) to efficiently support invasion, infection, and retreat operations. This book gives a comprehensive overview of all aspects of invasive computing., Invasives Rechnen ist ein Paradigma für den Entwurf und die Programmierung zukünftiger paralleler Rechensysteme. Für Systeme mit 1.000 oder mehr Kernen auf einem Chip ist eine ressourcengewahre Programmierung von größter Bedeutung, um eine hohe Auslastung sowie Rechen-, Energie- und Leistungseffizienz zu erreichen. Invasives Rechnen bietet dem Programmierer bzw. der Programmiererin explizite Möglichkeiten, die in verschiedenen Phasen der Ausführung gewünschten oder erforderlichen Ressourcenanforderungen zu spezifizieren: In einer Invasionsphase fordert eine Anwendung vom Betriebssystem eine Reihe gewünschter Prozessor-, Speicher- und Kommunikationsressourcen an. In einer anschließenden Infektionsphase wird die parallele Arbeitslast auf die bereitgestellten Ressourcen verteilt und ausgeführt. Nimmt der Grad der Parallelität während der Programmausführung ab, können die allozierten Ressourcen durch eine Rückzugsoperation wieder freigegeben werden, und die Anwendung wird wieder sequenziell ausgeführt. Um diese Idee der selbstadaptiven und ressourcengewahren Programmierung zu realisieren, mussten nicht nur neue Programmierkonzepte, Sprachen, Compiler und Betriebssysteme entwickelt werden, sondern auch revolutionäre architektonische Änderungen im Entwurf von MPSoCs (Multiprozessorsystemen auf einem Chip), um Invasions-, Infektions- und Rückzugsoperationen effizient zu unterstützen. Dieses Buch gibt einen umfassenden Überblick über alle Aspekte des invasiven Rechnens.