News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 
Download Current Issue
ISSUE 3/15/2010 PDF

Need Back Issues?
DOWNLOAD HERE

Receive the print Edition?


 
blogs tab
Microsoft lifts the hood on IE9
Microsoft is previewing IE9.
03/16/2010 01:10 PM EST

People Power enters the green technology market
People Power launches SuRF Developer's Kit for developers looking to get into green technology.
03/16/2010 11:51 AM EST

Windows Phone 7 will not support HTML 5
Windows Phone 7 will not support HTML 5.
03/15/2010 05:51 PM EST

 

Events calendar tab
3/16/2010 to 3/19/2010
Las Vegas
Penton Media

3/17/2010 to 3/19/2010
Las Vegas
TechTarget

3/22/2010 to 3/25/2010
Santa Clara, Calif.
The Eclipse Foundation

4/12/2010 to 4/14/2010
Las Vegas
Penton Media

4/12/2010 to 4/15/2010
Santa Clara, Calif.
O'Reilly Media


 
Most Read Latest News Blog Resources

Microsoft's shift to parallel computing




August 1, 2008 — 
Microsoft has embarked on a cross-company effort to transition to parallel computing. In that mission, it will attempt to soften the impact of those changes on developers.

Several groups within Microsoft are working on new technologies for multicore hardware architecture and concurrent computing scenarios, such as cloud computing.

The company’s developer division, the Robotics Group and an incubation group directed by chief research and strategy officer Craig Mundie are among those participating in that effort. SD Times interviewed the executives from those groups to learn more about their work.

The goal of the developer division is to make concurrency easy for developers, said Lynne Hill, general manager of the division’s parallel programming group.

Its initial work revolves around creating a concurrency runtime that operates on top of Windows, as well as adding extensions and libraries to existing .NET programming languages. These create a common scheduling framework for developers.

The division released in June a community technology preview of the Parallel FX library, which includes Parallel Language Integrated Query (PLINQ), a concurrent query execution engine for LINQ and Task Parallel Library (TPL), which provides parallel extensions for the .NET Framework.

Hill explained that this permits developers to inject parallelism into applications using models that they are already familiar with, but noted that developers should recognize when a particular problem might lend itself to parallelism.

Microsoft’s long-term intention is to integrate extensions for parallelism into .NET languages, she said. “The advantage of starting out with a library is to gather feedback; it makes modifications easier,” she added.

The company’s research labs are investigating new languages that are purposed for parallelism, including a functional language called F#. Hill noted that each developer can have a different requirement from a language, and that one language alone is not sufficient.

“Most of the problem is not the OS. Most of the activity lays in programming lines and implementations of those languages,” commented Microsoft technical fellow Burton Smith. “The major changes visible to people will be in languages and the [resulting] implementations.”

These languages and libraries will have corresponding tools, including some that integrate into Visual Studio, offering different views with drill-down capabilities, Hill said. Other tools will help developers profile and locate bottlenecks that affect applications running on a single machine.

The Microsoft Robotics Group is taking a more ambitious approach to concurrency: its technologies scale across machines. “We are a bit more radical,” admitted Microsoft’s Tandy Trower, the general manager of the group.

Indeed, even its role in the concurrency mission is something more radical than it would seem. Trower explained that his group was an incubation established by Mundie to address the complexity of software development for multicore, distributed processing and the complexity of running applications that run in many places at the same time.

Like the appendages of a robot, the components that make up those types of applications must be coordinated and isolated; there must be a unified way to deal with failure, Trower explained.

Isolating a component, Smith noted, means that various parts of a parallel computation, such as data access, are walled off from each other.

The Robotics Group’s main result to date has been the Microsoft Robotics Developer Studio, which consists of the Concurrency and Coordination Runtime (CCR) and a distributed runtime called Decentralized Software Services (DSS).

Put simply, CCR coordinates components and transactions, and its companion DSS scales out across networks, or down in the case of robots, pushing SOA to tiny devices, Trower said.

But DSS is not just for robots: MySpace uses it in combination with CCR to coordinate transactions across its server farms, as well as for load balancing and failure handling. Indiana University uses it to coordinate a high-performance computing network of multicore machines on the Bloomington campus.

DSS uses URIs to represent components in a representational state transfer architecture that keeps components deeply isolated, Trower said. Components send operations to a real-time transport document, which in turn forwards the updates.

The document is human-readable, as well as machine-readable for publish-and-subscribe, to enable asynchronous messaging.

“We are not a migration strategy,” said Trower, noting that the Robotics Group requires its own developers to rethink the fundamentals of application architecture.

Trower wrote in a follow up e-mail that the developer division might adopt CCR and integrate it with its parallel computing efforts, because it “closely aligned with the initial libraries that were already under development (TPL and PLINQ)” and focuses on local parallelism.

But he noted that DSS’ document-based distribution engine was not yet a candidate, because Microsoft already offers a distributed SOA offering in Windows Communication Foundation (WCF). “WCF provides an extensive model for programming services,” Trower added, but defining how DSS—being a partner library that scales CCR across network devices—would fit into WCF’s services model “requires a bit more thought in terms of integration.”

DSS is fairly simple in comparison to WCF, with only about 12 general operations on a document to represent state, and lacks some of WCF’s more sophisticated functions such as transaction handling, he noted.

The work of Microsoft distinguished engineer John Manferdelli is even more arcane than that of the Robotics Group. He is Mundie’s general manager of incubation and is responsible for creating new operating system technologies.

Some of Manferdelli’s work may seem mundane, such as creating math libraries to support parallel computation. His other work—inventing future operating system technologies that may ship through product groups—is more revolutionary.

He explained that one Microsoft objective is to create an operating system that scales performance whenever an additional CPU is added to the block,  without requiring programming changes. But Manferdelli is also investigating distributed parallelism.

“All OSes in the future need to think very carefully about asynchronous programming,” he said. He predicted that most future operating systems will have specialized APIs to handle concurrency, and, depending upon how radical their design, could implement new non-kernel mode scheduling. This would be accomplished by developing entirely new systems, or by relying upon runtimes.

Microsoft is incubating an operating system referred to as Midori. As first
reported by SD Times, Midori is designed with an asynchronous-only
architecture and is being designed to work in parallel/concurrent computing
environments.

One area of study is the latency of messages in parallel environments. In cloud computing, software decomposes into services that send messages to one another, explained Smith. “Messages are sent between subcomponents, either locally or in a distributed way.” Parallel computing can go a long way to accommodate latency in the cloud, he added.

Manferdelli also discussed ideas for isolating operating systems by way of a hypervisor layer, assigning them identities and sharing information between them just as applications do today.

Indeed, Microsoft has no deficit of ideas about how to handle concurrency, as demonstrated by the seemingly independent nature of its projects. But in the end, there will be some consensus.

“There has to be convergence,” Trower observed. “It’s logical to assume that somewhere down the road, if Midori becomes a deliverable, [Microsoft] will have some consolidation and unification of models.”


Related Search Term(s): cloud computingmulticoreMicrosoft


Share this link: http://www.sdtimes.com/link/32651
 

Add comment


Name*
Email*  
Country     


  • Comment
  • Preview
Loading