Towards guidelines for development of energy conscious software

In recent years, the drive for ever increasing energy efficiency has intensified. The main driving forces behind this development are the increased innovation and adoption of mobile battery powered devices, increasing energy costs, environmental concerns, and strive for denser systems. The main focus of these efforts has been on increasing the efficiency of the hardware but it has become clear that the largest gains can be made when energy efficiency is prioritized during the entire system design.

This work is meant to serve as a foundation for exploration of energy conscious software. We present an overview of previous work and a background to energy concerns from a software perspective. In addition, we describe and test a few methods for decreasing energy consumption with emphasis on using software parallelism. The experiments are conducted using both a simulation environment and real hardware. Finally, a method for measuring energy consumption …


1 Introduction
1.1 Background
1.2 Problem
1.3 Purpose
1.4 Approach
1.5 Thesis outline
2 Overview
2.1 Energy
2.1.1 The cause of energy consumption in a system
2.1.2 Energy, power and battery lifetime
2.1.3 Energy efficiency metrics
2.2 Battery technology
2.3 Energy estimation
2.4 System energy consumption distribution
2.5 Measuring energy consumption
2.6 Algorithms and energy complexity
2.7 Compilers
2.8 Operating systems
2.8.1 Cost
2.8.2 Cost mitigation strategies
2.8.3 Power management features
2.9 Frequency and voltage scaling
2.10 Parallelism and multi-core technology
2.11 Quality of service
2.12 Power management
3 Simulations
3.2 Image filter
3.2.1 Algorithm
3.2.2 Compiler effects
3.2.3 Quality of service
3.2.4 Parallel performance
3.2.5 Energy
3.3 Quicksort
3.3.1 Parallel Quicksort
3.3.2 Our parallel algorithm
3.3.3 Memory management
3.3.4 Frequency scaling
3.3.5 Optimizing the algorithm
3.3.6 Compiler optimizations
3.3.7 Combining results
4 Hardware
4.1 Hardware platform
4.1.1 Testing equipment
4.1.2 Measurement setup and method
4.1.3 Mitigating the noise issue
4.2 Hardware measurements
4.2.1 Compiler settings
4.2.2 Input data
4.2.3 Frequency scaling
4.2.4 Disabling interrupts
4.2.5 Comparing MPARM to hardware
5 Discussion
5.1 Purpose and goals
5.2 Limitations and problems
5.3 Our take on low power software issues
5.3.1 General optimizations
5.3.2 Frequency scaling
5.3.3 Compilers
5.3.4 Operating systems
5.3.5 Parallelism
5.3.6 Hardware design
5.3.7 Activity patterns
5.3.8 Energy analysis
5.4 Conclusions
5.5 Future work

Author: Carlstedt-Duke, Edward,Elfström, Erik

Source: Linköping University

Download URL 2: Visit Now

Leave a Comment