Skip to main content

2016 | Buch

Self-aware Computing Systems

An Engineering Approach

herausgegeben von: Peter R. Lewis, Marco Platzner, Bernhard Rinner, Jim Tørresen, Xin Yao

Verlag: Springer International Publishing

Buchreihe : Natural Computing Series

insite
SUCHEN

Über dieses Buch

Taking inspiration from self-awareness in humans, this book introduces the new notion of computational self-awareness as a fundamental concept for designing and operating computing systems. The basic ability of such self-aware computing systems is to collect information about their state and progress, learning and maintaining models containing knowledge that enables them to reason about their behaviour. Self-aware computing systems will have the ability to utilise this knowledge to effectively and autonomously adapt and explain their behaviour, in changing conditions.

This book addresses these fundamental concepts from an engineering perspective, aiming at developing primitives for building systems and applications. It will be of value to researchers, professionals and graduate students in computer science and engineering.

Inhaltsverzeichnis

Frontmatter
Chapter 1. Self-aware Computing: Introduction and Motivation
Abstract
Designing and operating computing and communication systems are becoming increasingly challenging tasks, due to a multitude of reasons. First, compute nodes are evolving towards parallel and heterogeneous architectures to realise performance gains while minimising their power consumption. Progress in micro(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. Second, distributed systems are growing 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 a distributed system can vary strongly during runtime since nodes may leave and enter the network dynamically. The position, functionality and available resources of each node may also change dynamically.
Peter R. Lewis, Marco Platzner, Bernhard Rinner, Jim Tørresen, Xin Yao

Concepts and Fundamentals

Frontmatter
Chapter 2. Self-awareness and Self-expression: Inspiration from Psychology
Abstract
Self-awareness concepts from psychology are inspiring new approaches for engineering computing systems which operate in complex dynamic environments. There has been a broad and long-standing interest in self-awareness for computing, but only recently has a systematic understanding of self-awareness and how it can be used and evaluated been developed. In this chapter, we take inspiration from human self-awareness to develop new notions of computational self-awareness and self-expression. We translate concepts from psychology to the domain of computing, introducing key ideas in self-aware computing. In doing so, this chapter therefore paves the way for subsequent work in this book.
Peter R. Lewis, Arjun Chandra, Kyrre Glette
Chapter 3. Relationships to Other Concepts
Abstract
This chapter will relate our concepts of computational self-awareness and self-expression to other efforts in computer science and engineering under the self-awareness label. Depending on the fields, the term self-awareness may have different meanings and may be more or less defined. Considering mainly disciplines which explicitly cover self-awareness, we present a selection of clusters of research, and their interpretation of the term. The examples range from basic, but efficient, electronic communication systems, through self-awareness in robotics and large IT systems, to more abstract and formal concepts of self-awareness emerging collectively through interaction of simple nodes. While there are many examples of work addressing self-awareness at different levels, there still seems to be a lack of general definitions and frameworks for working with self-awareness and self-expression in a computing context.
Kyrre Glette, Peter R. Lewis, Arjun Chandra
Chapter 4. Reference Architecture for Self-aware and Self-expressive Computing Systems
Abstract
This chapter covers a reference architecture for describing and engineering computational self-awareness and self-expression in computing systems. The architecture provides a common language with which to engineer the capabilities exercised by a “self” at a fine resolution inspired by concepts from psychology. The “self” demarked by the reference architecture is conceptual in nature, and therefore not limited to describing single agents. Consequently, the architecture allows the engineering exercise to scale freely across systems composed of arbitrary agent collectives. Being a common language, it paves a way for identifying architectural patterns influencing the engineering of computational self-awareness and self-expression capabilities across a range of applications. The psychological basis of the architecture brings clarity to the notion of self-awareness and self-expression in computing. These foundations also serve as a rich source of ideas which can now be channelled into the computing domain and inspire the engineering of computationally self-aware and self-expressive systems of the future.
Arjun Chandra, Peter R. Lewis, Kyrre Glette, Stephan C. Stilkerich

Patterns and Techniques

Frontmatter
Chapter 5. Design Patterns and Primitives: Introduction of Components and Patterns for SACS
Abstract
When faced with the task of designing and implementing self-aware and self-expressive computing systems, researchers and practitioners need guidelines on how to use the concepts and foundations of self-awareness. This chapter provides such guidelines on how to design self-aware and self-expressive computing systems in a principled way.We have documented different levels of self-awareness and proposed architectural patterns. We have also discussed common architectural primitives and attributes for architecting self-aware and self-expressive systems. Drawing on the knowledge obtained from the previous investigations, we discuss how the proposed patterns and primitives can be used in real software system projects.
Tao Chen, Funmilade Faniyi, Rami Bahsoon
Chapter 6. Knowledge Representation and Modelling: Structures and Trade-Offs
Abstract
As explained in Chapter 5, self-aware and self-expressive systems can be designed based on a number of patterns and primitives. In this chapter, we discuss issues to be considered when developing such systems, especially when going through phases 3 (selecting the best pattern) and 5 (determining primitives and alternatives), and possibly also phase 7 (score alternative primitives) of the methodology for designing and implementing self-aware and self-expressive systems described in Section 5.4. Specifically, we explain several features which may be present in selfaware and self-expressive systems, namely adaptivity, robustness, multi-objectivity and decentralisation. We discuss their implications in terms of knowledge representation and modelling choices, including potential trade-offs among different choices. Knowledge representation is interpreted loosely, referring to any structure used to store knowledge, whereas knowledge modelling is considered to be the process used to create and update such knowledge structures. The discussion raises awareness of general issues to be considered and carefully reflected upon when developing selfaware and self-expressive systems.
Leandro L. Minku, Lukas Esterle, Georg Nebehay, Renzhi Chen
Chapter 7. Common Techniques for Self-awareness and Self-expression
Abstract
Chapter 5 has provided step-by-step guidelines on how to design selfaware and self-expressive systems, including several architectural patterns with different levels of self-awareness. Chapter 6 has explained important features in self-aware and self-expressive systems, including adaptivity, robustness, multiobjectivity and decentralisation. To allow such self-aware capabilities in each design pattern and enable those system features, this chapter introduces the common techniques that have been used and can be used in self-aware (SA) and selfexpressive (SE) systems, including online learning, nature-inspired learning and socially-inspired learning in collective systems. Online learning allows learning in real time and thus has great flexibility and adaptivity. Nature-inspired learning provides tools to optimise SA/SE systems that can be used to reduce system complexity and costs. Socially-inspired learning is inspired by common social behaviours to facilitate learning, particularly in multi-agent systems that are commonly seen in SA/SE systems. How these techniques contribute to SA/SE systems is explained through several case studies. Their potentials and limitations are widely discussed at different self-awareness levels.
Shuo Wang, Georg Nebehay, Lukas Esterle, Kristian Nymoen, Leandro L. Minku

Nodes and Networks

Frontmatter
Chapter 8. Self-aware Compute Nodes
Abstract
Many modern compute nodes are heterogeneous multi-cores that integrate several CPU cores with fixed function or reconfigurable hardware cores. Such systems need to adapt task scheduling and mapping to optimise for performance and energy under varying workloads and, increasingly important, for thermal and fault management and are thus relevant targets for self-aware computing. In this chapter, we take up the generic reference architecture for designing self-aware and self-expressive computing systems and refine it for heterogeneous multi-cores. We present ReconOS, an architecture, programming model and execution environment for heterogeneous multi-cores, and show how the components of the reference architecture can be implemented on top of ReconOS. In particular, the unique feature of dynamic partial reconfiguration supports self-expression through starting and terminating reconfigurable hardware cores. We detail a case study that runs two applications on an architecture with one CPU and 12 reconfigurable hardware cores and present self-expression strategies for adapting under performance, temperature and even conflicting constraints. The case study demonstrates that the reference architecture as a model for self-aware computing is highly useful as it allows us to structure and simplify the design process, which will be essential for designing complex future compute nodes. Furthermore, ReconOS is used as a base technology for flexible protocol stacks in Chapter 10, an approach for self-aware computing at the networking level.
Andreas Agne, Markus Happe, Achim Löosch, Christian Plessl, Marco Platzner
Chapter 9. Self-adaptive Hardware Acceleration on a Heterogeneous Cluster
Abstract
Building a cluster of computers is a common technique to significantly improve the throughput of computationally intensive applications. Communication networks connect hundreds to thousands of compute nodes to form a cluster system, where a parallelisable application workload is distributed into the compute nodes. Theoretically, heterogeneous clusters with various types of processing units are more efficient than homogeneous clusters, since some types of processing units perform better than others on certain applications. A heterogeneous cluster can achieve better cluster performance by adapting cluster configurations to assign applications to processing elements that fit well with the applications. In this chapter we describe how to build a heterogeneous cluster that can adapt to application requirements. Section 9.1 provides an overview of heterogeneous computing. Section 9.2 presents the commonly used hardware and software architectures of heterogeneous clusters. Section 9.3 discusses the use of self-awareness and self-adaptivity in two runtime scenarios of a heterogeneous cluster, and Section 9.4 presents the experimental results. Finally, Section 9.5 discusses approaches to formally verify the developed applications.
Xinyu Niu, Tim Todman, Wayne Luk
Chapter 10. Flexible Protocol Stacks
Abstract
This chapter presents flexible protocol stacks as a promising alternative to today’s static Internet architecture. Self-aware/expressive network nodes cooperate to select the protocol stacks that fulfil all communication requirements at minimal cost at run-time. Since the network conditions and the internal state of the communication peers change over time, the communication peers can dynamically adapt the flexible protocol stack to add, remove or replace protocols on-the-fly during communication. This stands in strong contrast to the traditional Internet architecture, which only supports a fixed set of protocol stacks that hardly adapt to the network dynamics. For our flexible network architecture, we adapt the concepts of self-awareness and self-expression for an autonomous observation of the node’s internal system state and the network state and an autonomous run-time management of the protocol stacks. Our self-aware network node architecture also allows us to dynamically migrate the individual protocols between hardware and software at run-time to optimise the packet processing inside the network node to the current network traffic. In this chapter, we present the methodologies with which communication peers can negotiate the optimal protocol stacks amongst each other. Furthermore, we discuss the EmbedNet execution environment that supports an adaptive hardware/software mapping of flexible protocol stacks. Prototypes of the EmbedNet execution environment have been implemented on reconfigurable system-on-chip architectures. We demonstrate the efficiency of flexible protocol stacks in two case studies.
Markus Happe, Ariane Trammell-Keller
Chapter 11. Middleware Support for Self-aware Computing Systems
Abstract
The implementation of a distributed self-aware computing system (SACS) typically requires a substantial software infrastructure. A middleware system with dedicated services for self-awareness and self-expression can therefore support the development of SACS applications. In this chapter we show the advantages of using a middleware system as the basis for a self-aware computing system. We identify requirements for middleware systems to support the development of self-aware applications. By providing facilities for communication, decoupling and transparency, middleware systems can provide essential features needed in SACS. We compare different middleware paradigms and their suitability to support self-awareness in distributed applications. We argue that the publish/subscribe paradigm is very well suited for this application area since it supports modularisation and decoupling. Units can be added to and removed from existing applications and may well be reused in new applications. Thus, SACS can be constructed by recombining existing publish/subscribe modules. In addition, we present details of publish/subscribe and introduce our middleware implementation called Ella. We describe how different aspects of a SACS and patterns for self-aware applications can be represented using Ella. We present different communication paradigms in Ella (broadcasting, peer2peer) as well as decoupling mechanisms provided by the middleware. We argue that SACS applications can be developed (i) faster, (ii) more efficiently and (iii) more reliable with Ella. Finally, Chapter 13 presents a self-aware and self-expressive multi-camera application which has been implemented with Ella.
Jennifer Simonjan, Bernhard Dieber, Bernhard Rinner

Applications and Case Studies

Frontmatter
Chapter 12. Self-aware Hardware Acceleration of Financial Applications on a Heterogeneous Cluster
Abstract
This chapter describes self-awareness in four financial applications. We apply some of the design patterns of Chapter 5 and techniques of Chapter 7. We describe three applications briefly, highlighting the links to self-awareness and self-expression. The applications are (i) a hybrid genetic programming and particle swarm optimisation approach for high-frequency trading, with fitness function evaluation accelerated by FPGA; (ii) an adaptive point process model for currency trading, accelerated by FPGA hardware; (iii) an adaptive line arbitrator synthesising high-reliability and low-latency feeds from redundant data feeds (A/B feeds) using FPGA hardware. Finally, we describe in more detail a generic optimisation approach for reconfigurable designs automating design optimisation, using reconfigurable hardware to speed up the optimisation process, applied to applications including a quadrature-based financial application. In each application, the hardware-accelerated self-aware approaches give significant benefits: up to 55× speedup for hardware-accelerated design optimisation compared to software hill climbing.
Maciej Kurek, Tobias Becker, Ce Guo, Stewart Denholm, Andreea-Ingrid Funie, Mark Salmon, Tim Todman, Wayne Luk
Chapter 13. Self-aware Object Tracking in Multi-Camera Networks
Abstract
This chapter discusses another example of self-aware and self-expressive systems: a multi-camera network for object tracking. It provides a detailed description of how the concepts of self-awareness and self-expression can be implemented in a real network of smart cameras. In contrast to traditional cameras, smart cameras are able to perform image analysis on-board and collaborate with other cameras in order to analyse the dynamic behaviour of objects in partly unknown environments. Self-aware and self-expressive smart cameras are even able to reason about their current state and to adapt their algorithms in response to changes in their environment and the network. Self-awareness and self-expression allow them to manage the trade-off among performance, flexibility, resources and reliability during runtime. Due to the uncertainties and dynamics in the network a fixed configuration of the cameras is infeasible. We adopt the concepts of self-awareness and self-expression for autonomous monitoring of the state and progress of each camera in the network and adapt its behaviour to changing conditions. In this chapter we focus on describing the building blocks for self-aware camera networks and demonstrate the key characteristics in a multi-camera object tracking application both in simulation and in a real camera network. The proposed application implements the goal sharing with time-awareness capability pattern, including meta-self-awareness capabilities as discussed in Chapter 5. Furthermore, the distributed camera network employs the middleware system described in Chapter 11 to facilitate distributed coordination of tracking responsibilities. Moreover, the application uses socially inspired techniques and mechanisms discussed in Chapter 7.
Lukas Esterle, Jennifer Simonjan, Georg Nebehay, Roman Pflugfelder, Gustavo Fernández Domínguez, Bernhard Rinner
Chapter 14. Self-awareness in Active Music Systems
Abstract
Self-aware and self-expressive technologies may be used to improve user experience in interactive music systems. This chapter presents how the concepts and techniques from the first parts of the book may be exploited to develop better technologies for active music. Nature-inspired and socially-inspired methods, as introduced in Chapter 7, are used to allow music listeners to influence high-level parameters of the music, such as mood or tempo, without requiring the skill of a professional musician. Several of the examples presented in this chapter utilise the same algorithms as presented for the multi-camera networks in Chapter 13, thus demonstrating the broad application domain of these algorithms. The chapter is organised as a discussion of three example systems. First, a mechanism for conflict resolution in a distributed active music system is presented. The second and third example presented take inspiration from the pheromone mechanism used in Ant Colony Optimisation. The approach is first used for continuous classification of the movement patterns of listeners to incorporate adaptive mapping between sensor data and musical output. In the third example the same mechanism enables a system to remember the preferences of a user when navigating in a musical space.
Kristian Nymoen, Arjun Chandra, Jim Torresen
Chapter 15. Conclusions and Outlook
Abstract
In this book we have argued that in order to deal with the complexities of future computing systems, including size, decentralisation, uncertainty, dynamics and heterogeneity, greater levels of self-awareness on the part of such systems will be important. While this has long been agreed in principle, only now have we begun to establish a principled approach to the design of self-aware systems.
Peter R. Lewis, Marco Platzner, Bernhard Rinner, Jim Torresen, Xin Yao
Backmatter
Metadaten
Titel
Self-aware Computing Systems
herausgegeben von
Peter R. Lewis
Marco Platzner
Bernhard Rinner
Jim Tørresen
Xin Yao
Copyright-Jahr
2016
Electronic ISBN
978-3-319-39675-0
Print ISBN
978-3-319-39674-3
DOI
https://doi.org/10.1007/978-3-319-39675-0