A Microsoft official said the company plans to release tools that will make it easier for developers to build applications that can tap the full potential of parallel architectures--whether they're resident on the latest tablets and smartphones, or spread across virtualized environments in the cloud.
"This is the first year that mainstream tablets and smartphones are dual core. We're putting a heterogeneous supercomputer on every desk, in every living room, in every pocket," said Herb Sutter, Microsoft's principal architect for native languages. "It's no good if we can't write the code."
Sutter, who spoke Wednesday at AMD's Fusion Developer Summit in Bellevue, Wash., said the next version of Visual Studio, Visual Studio 2012, will offer tools that coders can use to write programs that work with a new extension to the C++ language. The extension, C++ Accelerated Massive Parallelism (C++ AMP), is designed to simplify the process of writing programs for heterogeneous, parallel architectures.
"There is a jungle of heterogeneity, and the question is, 'How do we program it?'," said Sutter.
In a heterogeneously parallel architecture, compute tasks are spread unevenly across multi-core CPUs and graphics processing units. The tasks best suited for a particular chip or core are shunted in that direction. For example, Microsoft's Xbox Kinect system relies on a number of highly specialized cores to determine a player's body position, and distributes the computational workloads across numerous chips. In the cloud, tasks may be spread across processing units that may not even be resident on the same physical server and possibly not even in the same city.
Programming for such environments is difficult, and has been mastered only by a select "priesthood," said Sutter.
C++ AMP aims to simplify the process by abstracting many of the hands-on tasks required for heterogeneous parallel programming into the familiar Visual Studio object-based environment. "It's not a research project, it's about the next version of Visual Studio," said Sutter. As its name suggests, Visual Studio 2012 will likely be released next year, but a specific ship date has not been announced.
Some developers may be concerned that C++ AMP will lock their apps into Microsoft environments such as the Azure cloud or Windows Phone. Other cloud platform providers, like Amazon and Salesforce, offer development tools but also are open to C++ programs, either directly or through APIs. Sutter said Microsoft plans to publish the code as an open standard that can be implemented on multiple platforms.
Graphics chipmaker Nvidia, which has given Microsoft first right of refusal on any acquisition attempt, became the first third-party vendor to publicly endorse C++ AMP. "Rest assured, Nvidia continues to work closely with Microsoft to help make C++ AMP a success, and we will continue to deliver the best GPU developer tools and training," a Nvidia official said in a statement. It's expected AMD will also support the technology. Intel has not weighed in.
The development of C++ AMP is in keeping with a larger philosophy taking hold at Microsoft that has the company looking for ways to make it easier for tech-savvy end users to build and publish their own programs--an approach that Apple used successfully to stock its App Store with millions of apps.
"The most downloaded free app was Bubble Ball, it was written by a 14-year-old kid. That's what developers look like now in addition to the professional developers," said Tim O'Brien, Microsoft's director of platform strategy, in an interview with InformationWeek editors last week at the company's campus in Redmond, Wash. "That hobbyist has been and will continue to be super-important to us from the engagement standpoint. But we're casting a much, much wider net now than we ever have before."
Attend Enterprise 2.0 Boston to see the latest social business tools and technologies. Register with code CPBJEB03 and save $100 off conference passes or for a free expo pass. It happens June 20-23. Find out more.