I have a habit of browsing the Microsoft Careers site looking for interesting tidbits of information, and I just found yet another, PLINQ - Parallel Language Integrated Query. Since I subscribe to Joe Duffy's Blog, I've been keeping up to date with his work with Concurrency and Parallelism in the CLR (read his 2 MSDN Mag articles for a quick summary, Using concurrency for scalability and Transactions for Memory), so I knew that the CLR is hard at work on adding parallelism to the .Net framework. But what I didn't know (and probably should have guess by now), that they are trying to add it via the LINQ enhancements to the core languages. There are (currently) a number different Program Manager positions that contain some details as to what they are trying to do but here are links to the ones I found interesting, PM1 and PM2. Of course the details are not listed in the job description, but at least you can get an idea of what they are trying to do. Here are a couple of snippets (for those of you too lazy to click the links):
There are a few well known inflection points in our company’s history where Microsoft innovations and technology have truly changed our industry. We are at another such juncture with the advent of multi- and soon many-core processors. Industry analysts forecast that by 2012, the hardware platform will be massively parallel. The day of the many core machine is fast approaching and exploiting those cycles via concurrency is the only way to leverage the utility and power of this next generation platform. Massive parallelism will lead to experiences you could only once dream of. To enable these next generation experiences, we must develop simpler ways of expressing parallelism in code and the tools to make developers successful at doing so. Our team’s mission is to enable the masses of developers to readily exploit parallelism. We will find success by delivering innovations in new application paradigms (Transactional Memory, Parallel libraries, Concurrency Runtime, PLinq, etc) through language innovations, code generation and library design.
and
We are looking for a great Program Manager to own our Parallel Language Integrated Query (PLINQ) program. Language Integrated Query (LINQ) adds a native querying syntax ala SQL to our .NET programming languages. Parallel LINQ will unlock the power of concurrency within the masses of LINQ developers.
and
We are looking for an experienced program manager to own our Core Software Transactional Memory and Performance program. STM is an innovative new technology which will replace conventional locking patterns for addressing shared memory concurrency in applications. Transactional memory borrows from concepts found in transactional systems (like SQLServer) to enable atomic operations in executing code. The technology also provides features enabling automatically contention detection, transaction roll-back, and retry. The technology promises to significantly reduce the complexity of developing multi-threaded applications. The successful candidate will also be accountable for identifying and driving towards the key business and technical scenarios. Included in this activity is working closely with Microsoft’s strategic hardware vendors on CPU enhancements to accelerate STM performance.
Overall, this stuff looks very cool. And it seems that LINQ is going to be a big part of how they plan to implement it, giving me even more of a reason to get going on LINQ before all the cool kids realize that WPF, WCF and WF are yesterday's news, and LINQ is where it is at ;)
Update! Looks like Joe Duffy is now leading the design and development of the Parallel LINQ (PLINQ) project. Congrats Joe!