The move to multicore processing is well underway. But the creation of software that takes advantage of multicore capabilities is still little more than a twinkle in the eyes of developers -- including Microsoft's developers.
Microsoft has started thinking through what apps might look like in five-plus years. And Craig Mundie, Chief Research and Strategy Officer, last week started articulating publicly -- albeit at a very high level -- some of the things Microsoft is mulling in the area of multicore applications.
Of all the presentations at Microsoft's annual Financial Analyst Meeting last week, the one that got me thinking the most was Mundie's. When I've heard Mundie speak before, he usually is showing off a bunch of Microsoft research projects that are typically a long way away from seeing the commercialized light of day.
But at FAM this year, Mundie gave a different kind of talk.
"The world is going to move more and more away from one CPU that is multiplexed to do everything to many CPUs, and perhaps specialty CPUs. This is not the world that the programmers target today. This kind of complexity was historically reserved only for the wizards who wrote the core operating system; or, in the world of supercomputing in science and engineering, people who had the ultimate requirement for computational performance built big machines like this and have used them to solve some of the world's tough computational problems. That was always a niche part of the industry," Mundie told the Wall Street analysts and press attending the July 26 FAM event.
Microsoft focused heavily on what the wholesale change to multicore will mean to programming languages and software design during its recent Faculty Research Summit. But Mundie went beyond the usual pie-in-the-sky high-performance-computing talk. Instead, he spoke at length on what all this multicore power will let users do.
"This (move to multicore) presages a change where the industry at large, the whole concept of applications, will ultimately have to be restructured in order to think about how to take advantage of these machines, because they won't just get faster every year. They'll get more powerful, but in fact only if you're able to master these problems of concurrency and complexity."
It's not a matter of getting PowerPoint to run 50 percent faster. Multicore means there will be a whole different new class of apps in the not-so-distant future, Mundie said.
"When those (apps like Lotus 123 and Wordstar) were the paradigm of word processing and spreadsheets, they were matched to the capability of that microprocessor," Mundie said. "But as the microprocessor has grown dramatically in capability, as has the whole system, the concept of the app hasn't fundamentally changed that much. And so the question that looms in my mind for Microsoft and ultimately for the industry is: What are those future applications and what might they look like? And in fact can we move to use all of the power that's there - not just to make them responsiveness to a new class of demand from you, but ultimately to do things for you that are more like what people who help you do for you? "
The cloud-services model meshes well with multicore, Mundie said, given that multicore apps will be more asynchronous, loosely coupled, concurrent, composable, decentralized and resiliently designed. These kinds of features almost by their very nature call for a cloud-computing model with giant datacenters' worth of power.
There were more adjectives on Mundie's multicore-app-design list: Context-aware, model-based, personalized, humanistic, adaptive and immersive. Sounds good, but what will these things mean to what the next generation of apps can do? Mundie offered a few broad-brush ideas:
"One of the things that will make (multicore apps) more useful is that they'll be more personalized. We're moving to an era where IT will make a lot of things more personal. People talk about moving from just-in-time manufacturing to personal manufacturing. Clearly the world of health care aspires to move in that direction to personalize medicine and health care. But think if the computer was really much more personalized in terms of what it did for you, even if it was derived from some generic capability. I think one of the big changes, it will become more humanistic - your ability to interact with the machine more the way you would interact with other people will accrue from this big increase in power. "
In the end, Mundie kind of spun off into sci-fi land, talking about artificial-intelligence kinds of scenarios where your computer would anticipate things you might be interested in, etc. But back here on earth, his ideas about creating new kinds of app and service combinations that might work more like we do and that could make us more productive sounded intriguing.
Granted, a lot of operating system and design tool changes need to happen before anything changes on the app side of the house. But Mundie offered up at least a taste of the kinds of things that Microsoft is contemplating could happen by next decade.