Friday, December 08, 2006

PLINQ Gathers Momentum

Parallel Language Integrated Query or Parallel LINQ (PLINQ) finally emerged from the shadows with Microsoft Program Manager Joe Duffy's December 1, 2006 "A new role for me at Microsoft" post:

I recently left the CLR team to join a new team focusing on parallelism on Microsoft's platform in the 3-10 year timeframe. I am leading design and development of the Parallel LINQ (PLINQ) project that I alluded to here.

We're looking for supersmart technical people to join the team and help change the face of programming for anybody writing code on the CLR or VC++. PLINQ isn't the only project. Solid CS skills are a must, but you don't necessarily have to be a concurrency guru (right away).

These [22] job postings have some detail. If something catches your eye, respond on the jobs site or send me your resume directly at joedu AT you-know-where DOT com (i.e. microsoft DOT com).

I'll of course still be blogging about everything concurrency related, so you won't notice much of a difference content-wise. And I'm still happy to answer any CLR related questions and help you find the right folks inside the team to listen to your feedback.
Joe is the author of an MSDN Magazine January 2006 "{END BRACKET}" column, "Transactions for Memory," and September 2006 "CLR Inside Out" column, "Using Concurrency for Scalability." There's no mention of LINQ in either article, but the handwriting was on the wall.

The first concrete information about PLINQ came from an August 28, 2006 eWeek article, "Microsoft's PLinq to Speed Program Execution," by Darryl K. Taft, who quotes Anders Heljsberg:

"With PLinq, effectively you write the code the same way, but we arrange for it to run on multiple CPUs," Hejlsberg said in an interview at Microsoft in early August. "So the queries get split up and run on multiple CPUs, and then you just wait for all the results to arrive. And lo and behold, without any changes your program just ran six times faster. It's instant gratification. ...

"It doesn't necessarily mean that every program is going to run six times faster, but there are classes of programs that we can make run faster without the user having to get into the nitty-gritty business of writing concurrent constructs."

Danny Thorpe, formerly Borland's Chief Scientist and now Microsoft Sr. Product Manager/Architect, noted in a September 2005 blog post announcing Borland's Delphi would support LINQ, that LINQ had parallel computing potential. Taft's September 27, 2005 eWeek article, "Borland Plans to Support MS LINQ in Delphi Platform" quotes Danny:

"LINQ presents an enormous opportunity to put parallel computing in a package that everyday coders can use safely and easily. Exploit those multicore processors! Even qrid computing is within reason."

I don't usually write about projects that don't have at least at least a public preview or alpha version available for testing. However, it appears that Microsoft is staffing to deliver PLINQ in the Orcas timeframe. So following the PLINQ story looks worthwhile.

Don Domsak's recent Parallel Language Integrated Query (PLINQ) post adds fuel to the PLINQ fire with this conclusion:

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 ;).

Note: Don Domsak, better known as DonXML is a Microsoft MVP for XML and a VB .NET fan. Don recently gave presentations on LINQ and the Entity Framework at the Heartland Developer Conference (HDC) 2006.

Question of the day: Will the PLINQ moniker morph to initial-letter-capped Plinq (a la Blinq), PLinq (per the original DLinq and XLinq API names), or adopt the LINQ to Whatever style as LINQ to Cores?

Update: 7/30/2007: Mary Jo Foley posted What will next-generation multicore apps look like? today, which quotes the presentation that Craig Mundie, Microsoft's Chief Research and Strategy Officer, gave to last week's Financial Analysts Meeting. There's no mention of PLINQ in the transcript that Mary Jo cites or the PowerPoint slides. It's surprising that PLINQ wasn't part of the presentation because it's probably Microsoft's first concrete implementation of declarative languages for multi-core processing.

Update 1/23/2007: Joe Duffy updated his post about PLINQ talk at the Declarative Aspects of Multicore Programming (DAMP) workshop he gave at POPL 2007 earlier in January by adding a link to his slides.

Update 12/12/2006: Anders Hejlsberg discusses PLINQ, concurrent programming, and LINQ for Orcas in an 8:29 interview from Tech•Ed: Developers 2006 Barcelona. The page also includes links to Eric Rudder's 1:15:00 Windows Vista, 2007 Office System and AJAX keynote, and brief interviews with Scott Guthrie, Paul Andrew, and Keith Smith.

Technorati Tags: Orcas, PLINQ, LINQ, C# 3.0, VB 9.0