Microsoft Research contributed to the SuperFetch effort, a feature within Vista that predicts which applications are used when, then pre-loads them so that they're instantly available. "As part of a long term set of projects, we want to teach the computer to learn from users to make the machine more proactive," says Eric Horvitz, a principal researcher with Microsoft's R&D as well as the president-elect of the American Association for Artificial Intelligence. "We want to use the system's idle time to make things punchier."
Horvitz and his colleagues developed the core algorithms that make up the predictive part of SuperFetch, the technology that plays Nostradamus for the operating system. Their work, says Horvitz, was able to predict which applications users would open by time of day and also by day of the week.
Convincing the Vista OS developers to take their word for it -- and their work -- was tougher. "They're cheapskates," says Horvitz. "They're cheap in giving up memory and processor cycles. And they were dubious. So we ran the predictions against real workloads from customers to show that we were [making] good predictions."
Microsoft Research obtained real-world desktop workloads from the company's "Customer Love" program, where hundreds of volunteers worldwide let Microsoft grab information from their systems on usability and usage patterns.
According to Horvitz, SuperFetch can accurately predict up to the next three applications that the user is likely to launch at any given time.
Pre-fetching applications to speed up access -- or at least boost the perceived speed of a PC -- is nothing new, acknowledged Horvitz, but SuperFetch is a first for Windows. "Most of those [earlier pre-fetch solutions] are focused on low-level decisions. What's happening here [with SuperFetch] is at the level of user modeling. It's learning about sequences of actions in a context-sensitive way."
Some work done by Horvitz and others in his group, however, didn't make it into Vista. Something he calls "presence forecasting," for instance, predicts when a user will step away from the computer and for how long, then uses that time for background chores, like disk clean-up chores or virus scanning, which would otherwise degrade the PC's performance.
"It knows when it's safe to clean up," says Horvitz, "and when you'll be back. It knows that there's a 90% probability that you'll be gone an hour, for example."
While the forecasting didn't get into Vista -- "It was a timing issue," says Horvitz -- R&D has released it as a separate component within Microsoft. In the future, it may show up in other applications, such as Microsoft's Windows Live OneCare, its consumer security suite.
Long-range, says Horvitz, he'd like to extend SuperFetch-like predicting to actions within individual applications. "In Outlook, when users read a message, they're likely to go forward [to the next] or back or open the message. The broader notion is that there are patterns within application usage we can take advantage of. We can predict what people are probably going to click on next."
Dubbed "continual computation," the concept dives into the application stack to speed up those clicks, or actions, by pre-fetching, say, that next message or loading it into memory so it's instantly available for opening.
"Most processors are idle at any one time," says Horvitz. "We want to take all this idle time and bend it to speed things up. Think of it as like balancing a portfolio over time. The goal is to make lesser-powered machines seem more powerful. To bend time and space."