InformationWeek: What new kinds of applications or ways of working do you think multicore computing would enable, and how will Microsoft position itself for that coming world?
Gates: On the client, of course, a lot of it is about natural interface. It's about speech, it's about vision, it's about very advanced search, where things that you might be interested in are brought to you without your having to do a lot of work. It's about filtering, making sure that your time, which is a scarce resource, is used in the best way. It's about reliability, it's about security. A lot of the extra compute power we get maps into those issues. I could have listed multimedia, but we're quickly getting to the point where even doing great, high definition rendering of multimedia things computationally is pretty straightforward. The tougher areas are things like getting speech accuracy up. A lot of these security algorithms are very compute intensive. Data mining to find deep insight. So we'll be able to use all the extra power. It would be a little simpler if that power was brought to us just with a higher clock speed, because then you don't have to parallelize the software as much. There's the famous Amdahl's Law that talks about that if you parallelize, say, half of your work, you can only get a factor of two speed-up, even if you have hundreds of processors there. It's a very tough problem to parallelize more and more and more and more.
People like Craig Mundie actually came to us 12 years ago from the supercomputing industry, where they worked on these problems. In a certain sense you can say it's been a Holy Grail of computer science to say, "Can you make one machine with power N, take the software, run it on N machines with power 1 and do the same thing?" The answer is, in general, no you can't, but can you for an interesting class of problems? There are the ones that are called embarrassingly parallel and we've got a lot of the brilliant people who have thought about this for a long time working for us.
InformationWeek: At the risk of overgeneralizing, how would you characterize the kind of software problems that are part of the Live software effort that [Microsoft chief technical officer] Ray Ozzie is managing? Where do those fall on the spectrum?
Gates: It's not really some direct connection. Certainly, when you use Live there will be some services up in the Internet like storing your files on the Internet, being able to back those up over the Internet, being able to have documents translated for you with a service on the Internet. A lot of the Internet services we'll provide will use thousands of servers that will manage using these advanced techniques. Microsoft search, the search cluster, uses what we call our Dynamic Systems Initiative, software that's designed that way to manage thousands of machines. We have less than one operator per thousand servers on our search cluster. Because a lot of those Live back-ends are so gigantic in what they do, there's some of the technology that comes into play there. Live is a very user-centric thing. It's you as the user, as you move between your devices, your information showing up automatically. It's about neat new ways of communicating. So the user won't say, "Wow, parallel computing." They'll just see the benefits. But on the back end are some of the more advanced things we're using. Eventually, Live will use vision and speech, and ink. And so even down on your tablet device, you'll have a multicore thing that you won't have to think about, but it's splitting the problem into many threads.