Self-Awareness as a Model for Designing and Operating Heterogeneous Multicores

Andreas Agne, Markus Happe, Achim Lösch, Christian Plessl, Marco Platzner
<span title="2014-07-04">2014</span> <i title="Association for Computing Machinery (ACM)"> <a target="_blank" rel="noopener" href="" style="color: black;">ACM Transactions on Reconfigurable Technology and Systems</a> </i> &nbsp;
Self-aware computing is a paradigm for structuring and simplifying the design and operation of computing systems that face unprecedented levels of system dynamics and thus require novel forms of adaptivity. The generality of the paradigm makes it applicable to many types of computing systems and, previously, researchers started to introduce concepts of self-awareness to multicore architectures. In our work we build on a recent reference architectural framework as a model for self-aware
more &raquo; ... and instantiate it for an FPGA-based heterogeneous multicore running the ReconOS reconfigurable architecture and operating system. After presenting the model for self-aware computing and ReconOS, we demonstrate with a case study how a multicore application built on the principle of self-awareness, autonomously adapts to changes in the workload and system state. Our work shows that the reference architectural framework as a model for self-aware computing can be practically applied and allows us to structure and simplify the design process, which is essential for designing complex future computing systems. ACM Reference Format: Andreas Agne, Markus Happe, Achim Lösch, Christian Plessl, and Marco Platzner. 2014. Self-awareness as a model for designing and operating heterogeneous multicores. A. Agne et al. et al. 2011], multiagent systems [Wooldridge 2009], autonomic computing [Sterritt and Hinchey 2010], and organic computing [Schmeck et al. 2011]. More recently and in a sense on top of the evolution of self-* systems, we find systems attributed with the characteristics of being self-aware [Agarwal et al. 2009]. The motivation for looking into self-* computing systems is two-fold: First, we can observe a rapid increase of complexity when designing and operating computing systems and applications. Nowadays, many application domains exhibit quite divergent requirements with respect to functionality and flexibility, performance, resource usage and costs, reliability and safety, and security. Distributed systems grow in the numbers and heterogeneity of nodes and must be able to cope with an increasing level of dynamics. The network topology and the collective resources of the distributed system can vary strongly during runtime since nodes may be mobile, break, run out of battery, or generally leave and enter the network. The second motivation is that compute nodes evolve towards parallel and heterogeneous architectures to realize performance gains while minimizing their power consumption. Progress in nano-electronics allows us to integrate more and more functionality on a single compute node, but at the same time requires us to deal with increasing numbers of faulty and unreliable components. Self-* approaches strive to embed higher levels of (computational) intelligence into the systems and, thus, to master complex system design and operation. In our work we focus on heterogeneous multicores implemented with fieldprogrammable gate arrays (FPGAs) and aim at developing models, architectures and programming environments that allow for creating self-aware compute nodes. To this end, we use a previously published reference architectural framework [Becker et al. 2011 ] as a model for managing heterogeneous multicores. In this article, we discuss this model and contrast it with related and previous approaches in self-aware computing systems. Our multicore implementation is based on ReconOS [Lübbers and Platzner 2009], a heterogeneous multicore architecture and programming environment which enables the creation of compute nodes according to the discussed model of selfawareness. While many works have shown adaptivity aspects in multicores [Coskun et al. 2008; Ebi et al. 2009; Mulas et al. 2009 ], the novel feature of our work is that with ReconOS and an FPGA-based multicore architecture we are able to adapt the number and type (software, hardware) of cores involved in executing an application during runtime. In the longer term we envision future self-aware compute nodes able to autonomously adapt to external changes in the workload and quality of service requirements but also to internal changes such as thermal problems and failures, and even anticipate such changes through modeling of the system and environment and through online learning techniques. The article is structured as follows: Section 2 reviews related approaches in self-* systems, in particular self-aware systems, and introduces to the reference architectural framework. Section 3 gives an overview over ReconOS. In Section 4, we report on experiments with heterogeneous multicores exhibiting a rather high degree of adaptivity which is made possible by clearly structuring the system implementation along the proposed model of self-aware computing. RELATED WORK IN SELF-AWARE COMPUTING In this section, we first review important characterizations of previous self-* approaches and then turn to related work in self-aware compute nodes. Finally, we present the reference architectural framework for self-awareness used in our work. 2.
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="">doi:10.1145/2617596</a> <a target="_blank" rel="external noopener" href="">fatcat:ep5qzii7xzfofp5yc74m7vkk7u</a> </span>
<a target="_blank" rel="noopener" href="" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href=""> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> </button> </a>