Energy Efficient Software

Submit New Article

Last Modified On :   October 2, 2008 10:03 AM PDT
Rate
 


Power Basics

Power Basics: Power is an overloaded word in English. It's used as a measurement of how strong something is, how bright or hot something gets, how much you can tow, and for many other things. Its true meaning in physics is much more precise, i.e. it's the rate of doing work, measured in Watts. Even so, its actual physical meaning is still abstracted from its usage in the domain of computer hardware and software. This section looks at what power is from both a physics perspective, as well as what it fundamentally means to the designers of computer platforms and the applications that run on them.

Devices

Processors and Performance: After the LCD display, the processor is one of the largest consumers of battery life in a notebook PC. A high performance processor in a notebook PC can consume upwards of 30 Watts, which is a large percentage of the entire energy budget of a portable or desktop. Thankfully, newer processors have mechanisms (such as Intel Speedstep) that allow them to run at lower frequencies – either when the applications do not demand a higher frequency, or when the user has selected an energy-conserving power policy. This section has content that addresses the energy-saving features of CPUs, and how applications developers can create software that works in harmony with these features, that allow the CPU to operate in its most energy-efficient manner.

Disk I/O: Hard disk drives and optical drives also contribute to limiting PC battery life. The longer a disk spins and the amount and frequency of data transfers have a substantial impact on power consumption. SW can significantly influence the impact of disk I/O on battery life. Both the Operating System and applications can reduce power usage with the intelligent organization of data on the hard drive, smart disk caching, and by following a strategy of powering down the drive when not in use.

Networking: Networking is an important part of the power equation in to day's increasingly mobile environment. Fully mobile users, operating in battery only environments, surf the web in coffee shops, write documents in meetings, and play massive multi-player online games when relaxing in a common area between classes. Strategies and methodologies for combining networking needs and minimizing power usage are a must.

Graphics and Displays: Power usage by the LCD was one of the first targets addressed by engineers trying to extend battery life. Over time, the types of applications has shifted away from displaying static and relatively low resolution content, toward the high resolution and quickly changing rendering of modern video and gaming applications. In such applications, power is consumed not only by the display but indirectly by the graphical algorithms that drive that display. This change necessitates more intelligent strategies for reducing power consumption. The development of power aware applications can play a significant role in reducing LCD power consumption. Such applications can at the very least make suggestions to the viewer to optimize the gaming experience (e.g. enter a power profile that conserves battery life). In the future, such applications may be able to intelligently dim the display at times of idle play, as well as reduce the resolution of the graphics engine when the remaining battery life has dropped below a certain threshold.

Vertical Applications

Gaming: The conventional desktop, whether the general purpose PC or dedicated gaming console, as well as handheld platforms, have long been important application areas for gaming. Part of the evolution of gaming systems has been to increase the resolution of displays, have more realistic rendering (graphics engine), provide environments that mimic physical reality (physics engine), and enable more intelligent entities (AI engine). Consumers have come to expect an ever improving gaming experience. This expectation naturally carries over into the portable gaming systems. Meeting such expectations requires increasing performance, and so increasing power usage, which, on the other hand, typically reduces the length of play. These issues are being addressed by developments in both the hardware and software of gaming platforms.

Developing Power Aware Apps

Developing Power Aware Apps: For some time, the industry has been aware of the need for SW to be able to be aware of and to tune its usage of power. This has resulted in the development of various standards that provide the hooks that allow an application to be aware of the power context of the platform it is running within. This context includes items such as whether the platform is plugged into an AC line, or if not, the remaining battery life. With this information, an application can potentially modify its behavior by using algorithms and techniques that minimize power usage at the cost of a reduction in performance.

Tool s and Code Samples

Microsoft's Windows* OS: Here is a list of tools and sample applications for creating and evaluating "energy-efficient" applications.

SDK/TDKs


Sample Applications:


Assessment Tools:

Linux* OS: Please check out more information about "energy-efficient software" on Linux at Lesswatt.org.
 

"Energy-efficient" Blog Post and Forum Discussion