A parallel software energy efficiency ratio
Abstract
Rising energy costs, the shrinking size of mobile devices and political influences have begun to force device and software developers to look at ways in which they can reduce their energy usage. While most energy savings can be found in how hardware is designed, because software is what ultimately controls the hardware it runs on, software plays a key role in how devices can be more energy efficient. At the same time a careful balance between performance and energy savings must be maintained. In order to examine this balance, researchers have begun to put forth energy models that rely on dynamic voltage and frequency scaling to optimize performance and energy usage. These models are then applied to various ratios that compare the estimated energy usage values of different application designs. By using these ratios researchers and application designers can see how well their applications will perform without worrying about the inaccuracies inherent to the estimates used. The problem with these models and ratios being that while most software is ran on devices capable of changing their processor frequency and voltage, most developers do not have the ability to change these settings due to operating system safety and security restrictions. We present an alternative energy ratio that compares the energy usage of a sequential application with its parallel version, which uses the work and idle times of the processor to examine its energy efficiency. Using this ratio we show how software developers can examine their parallelization efforts and decide not only which method will provide them with the performance they seek while not sacrificing energy usage, but also when it is expedient to reduce the amount of processors used by their application.