Both Intel and Microsoft have been knocking themselves out for years, seeking to develop better options for energy efficiency and power management at the hardware and operating system later. Now Microsoft is hoping to rally more application developers to the power management cause.
The need for third-party application developers to accommodate power management modes has become acute, according to Mark Aggar, Microsoft's director of environmental technology, who spoke about the topic this week during a presentation at the Intel Developer Forum.
"Applications have a funny little habit of undermining energy efficiency when you least expect it," Aggar said during a phone interview the day after his speech. Most IT professionals, however, are unaware of the role that applications play in power management agendas, he says.
For example: you wouldn't want your laptop display dimming when you're watching a video, right? But, ahem, I'll bet this might have happened to you when you were using one of the high-profile multimedia players.
The challenge is that very few applications actually were written to acknowledge or override system-level power management settings -- which make make for a case of what Microsoft describes as "PC insomnia." Or, the scenario when your computer should go to sleep, but it can't because of some application that is running. According to one of a series of white papers that Microsoft has prepared on the topic, applications need a tweak if they are going to interoperate well with system sleep or hibernation features. Here are three important factors for development:
- An application shouldn't prevent a system from going to sleep
- An application shouldn't crash when a computer is entering or exiting sleep mode
- An application should be smart enough to prevent the computer from sleeping during a passive activity (like watching a video)
According to Aggar, it is relatively simple to stop an application -- custom or commercial -- from undermining power management goals that are being sought at the system level. Microsoft has some APIs that allow developers to address this in a few lines of code. White papers on everything from the science of setting application timers to more sophisticated practices such as measuring idle power consumption can be found on the "Energy Smart" section of the Microsoft developer Web site.
To close, here are Aggar's top 10 ways to be "Energy Smart":
- Be resilient and respectful of sleep transitions
- Use system and display availability requests appropriately
- Support virtualization
- Measure system utilization when your application is idle
- Help the system stay idle
- Consider and adjust to the power environment
- Measure workload power efficiency
- Improve workload power efficiency
- Scale resource use intelligently
- Cloudburst the peak load
Hmm, I wonder what Microsoft's own applications team is doing to support this cause?