Microsoft Adding Features to C++ for Massive Parallelism
If there’s one thing The VAR Guy has learned at the AMD Fusion Developer Summit, it’s that all the hardware advancements in the world don’t mean a thing if there’s no software to run. That’s the main reason why AMD brought its developer community together for this event, and our resident blogger surmises it’s also the reason why Herb Sutter, Microsoft’s principal architect of native languages, took to the stage at the event to announce a new version of C++ with the features needed to develop for this next generation of processing power.
C++ AMP (Accelerated Massive Parallelism), which Sutter announced at the event and Microsoft Developer Division Senior Vice President Soma Somasegar simultaneously blogged about, purports to enable developers to write code that spreads the processing over both the CPU and GPUs, thereby taking advantage of heterogeneous nature of the processors such as the quad-core Llano processor AMD debuted during the summit (but which actually started shipping in April 2011).
“This is our effort to help bring heterogeneous parallel computing into the mainstream,” Sutter said during his keynote.
Sutter pointed out such applications currently do exist – every Microsoft Kinect game uses heterogeneous parallel computing – but the technology hasn’t seen much growth because it’s still generally a manual process.
With C++ AMP, Sutter and Microsoft foresee a fundamental shift in the way developers create code.
“We think hardware is going to be all over the map, and it will be categorized as either scale-in or scale-out,” he said. “When designing a programming model for any of these models, developers should be programming for all of these models,” something C++ AMP can help with.
Microsoft is planning to make C++ AMP an open compiler that any developer can run for any specification, which the company hopes will help accelerate the creation of code for Fusion and other heterogeneous processors.