
Proactive Energy-Aware Computing Proaktive energiebewusste Rechenvorgänge Der Technischen Fakultät der Friedrich-Alexander-Universität Erlangen-Nürnberg zur Erlangung des Doktorgrades Doktor der Ingenieurwissenschaften (Dr.-Ing.) vorgelegt von Timo Hönig aus Darmstadt Als Dissertation genehmigt von der Technischen Fakultät der Friedrich-Alexander-Universität Erlangen-Nürnberg Tag der mündlichen Prüfung: 17. November 2017 Vorsitzender des Promotionsorgans: Prof. Dr.-Ing. Reinhard Lerch Gutachter: Prof. Dr.-Ing. habil. Wolfgang Schröder-Preikschat Prof. Dr.-Ing. Jörg Nolte Copyright 2017 Timo Hönig This work is licensed under a Creative Commons Attribution-NonCommercial- NoDerivatives 4.0 International License. www.creativecommons.org/licenses/by-nc-nd/4.0/ To be aware and to be are the same. Parmenides of Elea (c. 515 BC) Abstract Electrical energy is the single most important operating resource to computer systems. Although the energy demand of computers is an invisible system property by itself, the impact of energy demand is omnipresent and obvious in manifold forms of appearance. Sudden system failures (i.e., system break- downs) and recurrent standard system operations (i.e., system charging) serve as practical examples. Energy demand of hardware components is a physi- cal property of integrated transistor circuits that build our computers today. However, dynamic energy demand at the hardware level is caused by system activities (i.e., processes) at the software level. The analysis and improvement of system software is in focus due to the causal relationship: system software yields challenges and opportunities in equal measure in order to reduce the en- ergy demand of the system at the hardware level. In particular, fine-tuning of system components offers distinct measures to improve the energy efficiency of computer systems. Improvements concern the coherent design of application and system software under consideration of hardware aspects. This thesis presents, implements, and evaluates unique concepts for proactive energy-aware computing on energy-efficient systems-on-a-chip. In particular, it contributes a development method for energy-aware programming that orig- inates in static and dynamic program analysis to support programmers at the design of energy-aware programs. To assist programmers in reducing the en- ergy demand of their programs, the thesis proposes a software-hardware tool- ing infrastructure that combines energy-aware programming techniques with automatised energy demand analysis at system level. To further reduce the energy demand of computer systems, the thesis implements a process exec- utive at the operating-system level that exploits a priori information at run time to reduce the energy demand of processes. The corresponding cross-layer approach enables the transfer of programmers’ knowledge to the operating system to reduce the energy demand at run time. The thesis is first to combine dynamic program analysis techniques and theau- tomatic creation of program variants to support energy-aware programming at the operating-system level. The distinct combination of application knowledge to identify and set important adjusting screws for the energy efficient operation of a computing system bound to an operating system is claimed to be novel. Zusammenfassung Elektrische Energie ist die wichtigste Betriebsressource für Computersysteme. Obwohl der Energiebedarf von Computern eine weitgehend unsichtbare Sys- temeigenschaft darstellt, sind seine Auswirkungen allgegenwärtig und in viel- fältigen Erscheinungsformen offensichtlich. Plötzliches Systemversagen (z. B. Systemabsturz) und wiederkehrende Standardvorgänge (z. B. Akkuaufladung) dienen als Beispiele der Praxis. Der Energiebedarf von Hardwarekomponenten ist eine physikalische Eigenschaft integrierter Transistorschaltungen, aus de- nen heutige Computer bestehen. Der dynamische Energiebedarf der Hard- ware wird jedoch durch Systemaktivitäten (z. B. Prozesse) der Software ver- ursacht. Die Analyse und Verbesserung der Systemsoftware steht aufgrund des folgenden Kausalzusammenhangs im Vordergrund: Systemsoftware bringt Herausforderungen und Chancen gleichermaßen mit sich, um den Energiebe- darf auf Hardwareebene der Systeme zu reduzieren. Insbesondere bietet die Feinabstimmung von Systemkomponenten Maßnahmen zur deutlichen Verbes- serung der Energieeffizienz von Computersystemen an. Solche Verbesserungen betreffen die kohärente Gestaltung von Anwendungs- und Systemsoftware unter Berücksichtigung von Hardwareaspekten. Diese Dissertation präsentiert, implementiert und evaluiert spezifische Kon- zepte für proaktive energiebewusste Rechenvorgänge bei energieeffizienten Rechnern, die auf Ein-Chip-Systemen basieren. Insbesondere wird die Ent- wicklungsmethode für energiebewusstes Programmieren, die ihre Wurzeln in der statischen und dynamischen Programmanalyse hat, als Beitrag geleis- tet, um Programmierern bei der Entwicklung energiebewusster Programme zu helfen. Zur zielführenden Unterstützung schlägt die Dissertation hierfür eine Software und Hardware umfassende Arbeitsumgebung vor, die energie- bewusste Programmiertechniken mit automatisierter Energiebedarfsanalyse auf Systemebene kombiniert. Zur weiteren Verringerung des Energiebedarfs von Computersystemen implementiert die Arbeit eine Laufzeitexekutive für Prozesse auf der Betriebssystemebene, die unter Verwendung von apriorischem Wissen den Energiebedarf von Prozessen zur Laufzeit verringert. Der entspre- chende schichtenübergreifende Ansatz ermöglicht den Wissenstransfer zwi- schen dem Programmierer und dem Betriebssystem. Die vorliegende Arbeit kombiniert als Erste dynamische Programmanalyse und Variantenbildung zur energiebewussten Systemprogrammierung. Diese Art der Zusammenführung von Anwendungswissen, um wichtige Stellschrau- ben für einen energieoptimierten Betrieb eines Rechensystems an ein Betriebs- system zu knüpfen, wird als neu beansprucht. Contents 1 Introduction 1 1.1 Electrical Energy: A Prime Resource for Computers . 3 1.1.1 Disambiguation: Energy .................. 3 1.1.2 Energy Demand of Computing Systems . 5 1.2 The Relationship of Software and Energy Demand . 6 1.3 Problem Statement ......................... 8 1.4 Research Question ......................... 11 1.5 Contributions of this Thesis .................... 11 1.6 Overview .............................. 12 1.7 Publications ............................. 12 2 State of the Art and Related Work 15 2.1 The Origin of Energy-Aware Computing . 17 2.2 Energy Demand Analysis and Program Design . 20 2.3 Constructive Tools and Infrastructure . 26 2.4 System Software and Operating-System Design . 32 2.5 Hardware Architecture and Digital Circuit Design . 38 2.6 Summary .............................. 42 3 Problem Analysis and Research Approach 43 3.1 Overview .............................. 44 3.2 Static and Dynamic Program Analysis . 46 3.2.1 Problem Statement I .................... 47 3.2.2 Proposal I: Energy Demand Analysis of Processes . 50 3.3 Variant Generation and Analysis . 53 3.3.1 Problem Statement II ................... 54 3.3.2 Proposal II: Multi-Variant Energy Demand Analysis . 57 3.4 Cross-Layer Run-Time Analysis . 61 3.4.1 Problem Statement III ................... 61 3.4.2 Proposal III: Energy Demand Reduction Executive . 64 3.5 System Level Energy Demand Analysis . 67 3.5.1 Problem Statement IV ................... 68 3.5.2 Proposal IV: Integrating Energy Measurement Device . 70 3.6 Research Question ......................... 72 3.7 Summary .............................. 73 xi xii Contents 4 Hybrid Program Analysis for Energy-Aware Programming 75 4.1 Motivation and Problem Statement . 76 4.2 Energy Demand Analysis of Processes . 78 4.3 Hybrid Program Code and Process Analysis (HEAL) . 80 4.3.1 Malleability Exploration . 81 4.3.2 Run-Time Behaviour Analysis . 84 4.3.3 Resource Demand Assessment . 88 4.3.4 Interweaving of the Components . 89 4.4 Implementation ........................... 90 4.4.1 Conjunct Static and Dynamic Program Analysis . 90 4.4.2 Dynamic Program Analysis . 98 4.4.3 Energy Demand Analysis . 102 4.5 Evaluation ..............................106 4.5.1 Benchmark Application Analysis . 106 4.5.2 Compound Analysis of an Application Set . 108 4.5.3 Resource Demand Profiling . 111 4.6 Summary ..............................113 5 Greedy Exploration Method and Process Executive 115 5.1 Motivation and Problem Statement . 116 5.2 Multi-Variant Energy Demand Analysis . 118 5.3 Greedy and Explorative Analysis Method (ROAM) . 119 5.3.1 Processing Stages and Exploration Strategies . 120 5.3.2 Implementation . 123 5.4 Energy Demand Reduction Executive . 126 5.5 Process Accompanying and Scoring Executive (PACE) . 128 5.5.1 Transmission Path and Process Analysis . 129 5.5.2 Implementation . 131 5.6 Evaluation ..............................132 5.6.1 Assessment of Composition Stage Strategies . 133 5.6.2 Influence of Hardware Settings at the Rehearsal Stage . 136 5.6.3 Operating-System Noise at the Release Stage . 140 5.7 Summary ..............................142 6 Measuring System Level Energy Demand 145 6.1 Motivation and Problem Statement . 145 6.2 System Level Energy Demand Analysis . 146 6.3 Integrating Energy Measurement Device (ITEM) . 148 6.3.1 Concept . 149 6.3.2 Design and Implementation . 150 6.4 Evaluation ..............................151 6.4.1 Hardware Platforms . 151 6.4.2 Generation of Energy Profiles . 152 6.5 Summary ..............................156 Contents xiii 7 Discussion and Outlook 159 7.1 Overview ..............................159
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages209 Page
-
File Size-