Microsoft`s Parallel Push Takes Another Step Forward
Microsoft is working to deliver parallel programming capabilities to the masses, in the way that perhaps only the software giant can. The company is pursuing data parallelism, a form of parallelization of computing across multiple processors in parallel computing environments.
Microsoft is working to deliver parallel programming capabilities to the masses, in the way that perhaps only the software giant can.
In an interview with eWEEK at the Microsoft Professional Developers Conference (PDC) 2009 here, S. “Soma” Somasegar, senior vice president of Microsoft Developer Division, said the company is attacking the issue of parallel computing or concurrency on a number of levels, including at the language level, at the runtime level and at the operating system level, among others.
Indeed, “parallel” and “data” appeared to be two of the most frequently used terms at this PDC – in addition to “cloud” and maybe “modeling” – and, ironically, Microsoft has an emerging effort to pursue “data parallelism,” Somasegar said.
Data parallelism — also known as loop-level parallelism — is a form of parallelization of computing across multiple processors in parallel computing environments.
“We are grappling with something called data parallelism,” Somasegar said. “We think parallel programming is great, a lot of programming today deals with data. The more we can think about what data parallelism looks like, the more we think we can execute effectively on that. So one of the things we have in the parallel programming world and partnering with the C++ guys is looking at whether there are extensions that we should do that enable data parallelism.”
Somasegar explained that if a developer is going to do any kind of operation on data, either they can do it sequentially or they can do it in parallel. Mostly today it happens in a sequential way. “So you are limited by how fast you can go through a particular data access in a sequential way,” he said. “But if you have a large data set and you can partition the data set into half a dozen data sets or a dozen data sets and you can do some operations in parallel, you can do it that much faster.”
Microsoft focused a lot on the increasing need for programmers to interact more directly with data. The company announced a new effort known by the codename “Dallas,” which is an effort to deliver a data-as-a-service solution. Both SQL Azure and the new SQL Server Modeling Services offerings – ways for developers to get closely involved with data — demanded much attention at sessions and meetings at the PDC.
“You cannot talk to a developer today who doesn’t need access to data,” Somasegar said. “You cannot see an application that doesn’t have some involvement with data. We used to view programming as programming and data as data. But with the release of LINQ {Language Integrated Query] a few years ago, that was an attempt to get these two islands to be more integrated. Whether you are thinking about cloud, whether you’re thinking about on-premises on the back end, or whether you’re thinking about the front-end with a client, you really need to think about what your data access story looks like. So it’s a natural evolution, but probably one that is a little late in coming for the world at large.”
During a PDC panel on the future of programming, Don Box, a Microsoft software architect and distinguished engineer, said, “My day job is to make programmers learn to love the database.”
So Microsoft is attacking the problem of parallel programming from a number of fronts. And the company is doing it in the traditional Microsoft way of making its technology available to a large number of customers at a reasonable cost – the traditional “high-volume, low-cost” Microsoft strategy. Pushing early stage support for parallel programming out in its standard integrated development environment, Visual Studio, is a first step.
“There is a lot of early thinking that is happening in multiple dimensions of the company and a few concrete things that we know that we are delivering in Visual Studio 2010.”
What Microsoft is delivering in Visual Studio 2010 includes tooling such as debugging tools for coding for concurrency, and delivering parallel libraries to enable developers to parallelize certain parts of their application – such as the Task Parallel Library (TPL).
(more…)