Language and Compilation of Parallel Programs for *-Predictable MPSoC Execution Using Invasive Computing

The predictability of execution qualities including timeliness, power consumption, and fault-tolerability is of utmost importance for the successful introduction of multi-core architectures in embedded systems requiring guarantees rather than best effort behavior. Examples are real-time and/or safety-critical parallel applications. In particular for future many-core architectures, analysis tools for proving such properties to hold for a given application irrespective of other workload either suffer from computational complexity. Or, sound bounds are of no practical interest due to severe interferences of resources and software at multiple levels. In view of abundant computational and memory resources becoming available, we propose to apply the principles of invasive computing to avoid sharing of resources at run time as much as possible. We subsequently show that statically proven quality guarantees may be enforced on many multi-core architectures by a presented hybrid mapping approach. Rather than fixed resource mappings, this approach provides only constellations of resource allocations to the run-time system that searches for such constellations and assigns the invader a suitable claim of resources, if possible. We have implemented this hybrid approach and the interface to the language InvadeX10, a library-based extension of the X10 programming language. In this extension, so-called requirements on execution qualities such as deadlines (e.g., in the form of latency constraints) may be annotated to individual programs or even program segments. These are then translated into satisfying resource constellations that need to be found at run time prior to admitting a parallel application to start, respectively continue in view of required execution quality requirements. We give a real-world case study from the domain of heterogeneous robot vision to demonstrate the capabilities of this approach to guarantee statically analyzed best and worst-case timing requirements on latency and throughput.

[1]  Jürgen Teich,et al.  A co-design approach for fault-tolerant loop execution on Coarse-Grained Reconfigurable Arrays , 2015, 2015 NASA/ESA Conference on Adaptive Hardware and Systems (AHS).

[2]  Kees G. W. Goossens,et al.  Composability and Predictability for Independent Application Development, Verification, and Execution , 2011, Multiprocessor System-on-Chip.

[3]  Stephen A. Edwards,et al.  Predictable programming on a precision timed architecture , 2008, CASES '08.

[4]  Kees G. W. Goossens,et al.  Virtual execution platforms for mixed-time-criticality systems: the CompSOC architecture and design flow , 2013, SIGBED.

[5]  Jürgen Becker,et al.  Providing multiple hard latency and throughput guarantees for packet switching networks on chip , 2013, Comput. Electr. Eng..

[6]  Michael Glaß,et al.  DAARM: Design-time application analysis and run-time mapping for predictable execution in many-core systems , 2014, 2014 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[7]  Francisco J. Cazorla,et al.  Merasa: Multicore Execution of Hard Real-Time Applications Supporting Analyzability , 2010, IEEE Micro.

[8]  J.,et al.  Composability and Predictability for Independent Application Development , Verification and Execution , 2010 .

[9]  Xianfeng Li,et al.  Chronos: A timing analyzer for embedded software , 2007, Sci. Comput. Program..

[10]  Lothar Thiele,et al.  Design for Timing Predictability , 2004, Real-Time Systems.

[11]  Jan Reineke,et al.  Timing predictability of cache replacement policies , 2007, Real-Time Systems.

[12]  Jürgen Teich,et al.  Techniques for on-demand structural redundancy for massively parallel processor arrays , 2015, J. Syst. Archit..

[13]  Jürgen Teich,et al.  Pareto-Front Exploration with Uncertain Objectives , 2001, EMO.

[14]  Thomas A Henzinger,et al.  Two challenges in embedded systems design: predictability and robustness , 2008, Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences.

[15]  Jan Reineke,et al.  A Template for Predictability Definitions with Supporting Evidence , 2011, PPES.

[16]  Jürgen Teich,et al.  The Invasive Network on Chip - A Multi-Objective Many-Core Communication Infrastructure , 2014, ARCS Workshops.

[17]  Jürgen Teich,et al.  Invasive Computing: An Overview , 2011, Multiprocessor System-on-Chip.

[18]  Jürgen Teich,et al.  Invasive Algorithms and Architectures Invasive Algorithmen und Architekturen , 2008, it Inf. Technol..

[19]  Frank Hannig,et al.  Invasive Tightly-Coupled Processor Arrays , 2014, ACM Trans. Embed. Comput. Syst..

[20]  Michael Glaß,et al.  ActorX10: an actor library for X10 , 2016, X10@PLDI.

[21]  Jürgen Teich,et al.  Resource-aware programming and simulation of MPSoC architectures through extension of X10 , 2011, SCOPES.

[22]  Jürgen Teich,et al.  Execution-driven parallel simulation of PGAS applications on heterogeneous tiled architectures , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[23]  Wang Yi,et al.  Building timing predictable embedded systems , 2014, ACM Trans. Embed. Comput. Syst..

[24]  Jakob Engblom,et al.  The worst-case execution-time problem—overview of methods and survey of tools , 2008, TECS.

[25]  Per Stenström,et al.  Timing anomalies in dynamically scheduled microprocessors , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).