With multi-core processors becoming a preferred method for building more powerful computers, Microsoft anticipates that a key trend for the future of application development will be accommodating parallel systems.
Microsoft officials at a press event Tuesday evening in Orlando, Fla. emphasized parallel development as a focus for the future. The event was held in conjunction with the TechEd 2008 conference. Attendees at the conference offered their own perspectives not only on parallel programming but on other issues and technologies, such as the Silverlight rich Internet application platform, the Oslo modeling project, and migrating Visual Basic 6 code to .Net.
Software will be critical to leveraging parallel systems, according to Microsoft. "We're done with hardware exploitation of parallelism," said Brian Harry, Microsoft Technical Fellow.
The issue with parallel programming, Harry said, is data dependency. Multiple, independent operations work on the same data. These data dependencies become difficult to handle. "They're nearly unpredictable," he said.
As a step in parallel programming, Microsoft has devised its Parallel Extensions to the .Net Framework. This simplifies development of concurrent applications by providing library-based support for introduction of concurrency into applications written with.Net languages, such as C# and Visual Basic.NET. The extensions are available in a Community Technology Preview format.
"To me, this is a baby step that we've taken," said S. "Soma" Somasegar, corporate vice president of the Microsoft Developer Division. Programming for parallelism will need to be extended to more programmers, not just elite programmers, he said.
Parallel computing is not just for servers, Somasegar said. "There is a huge opportunity on the client as much as the server," he said. Web-based applications have performed well with current paradigms, but high-scale Web applications could benefit from parallel processing, Harry said.
An attendee at TechEd said he views parallel processing as an OS issue.
"I definitely think that we're going in that direction and that software applications will need to be able handle ubiquitously multi-core processors and be independent of the number of cores," said Aaron Sahlstrom, technical lead for the software development team at Providence Health Plan. "But I think that the operating system is going to have to handle that, not the applications."
Another attendee acknowledged Microsoft's interest in parallel programming although it was not a top priority with her company at the moment.
"It sounds like I'm going to have to be concerned about in the future if Microsoft is going that way," said Diane Reiche, manager of application services at PPG Industries.
"We don't write too many multi-threaded applications today, so I'm sure there's interest in it from a developer's standpoint. But we haven't really delved into it as of this point," said Reiche. If PPG runs up against performance issues, it adds another server to its farm, she said.