Loading user information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading user information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Inside Parallel Extensions for .NET 2008 CTP Part 1

51 minutes, 24 seconds


Right click “Save as…”

Parallel Extensions simplifies development by providing library-based support for introducing concurrency into applications written with any .NET language, including C# and Visual Basic. It includes the Task Parallel Library (TPL), which provides imperative data and task parallelism; Parallel LINQ (PLINQ), which provides declarative data parallelism; and all new Coordination Data Structures (CDS), which provide support for work coordination and managing shared state.

In addition to CDS, this upgrade provides several improvements, including a new scheduler that is more robust, efficient, and scalable. TPL also exposes new functionality, including methods for continuations. PLINQ now runs on top of TPL, clarifies order-preservation, and provides several new operators.

The June CTP works with the .NET Framework 3.5 as a simple, small-footprint installation that drops a single DLL, documentation, samples, and registers the DLL with Visual Studio 2008.

Here, we meet some of the key engineers of the Microsoft Parallel Computing Platform (which includes the Parallel Extensions for .NET...): Lead Developer Joe Duffy, Developer Huseyin Yildiz, Developer Igor Ostrovsky, Program Manager Stephen Toub and Program Manager Ed Essey.

We dig deeply into a lot of topics related to parallelism and conconcurency and how the new additions to the platform enable developers to exploit multi/many core processors in an elegant way.

Enjoy part 1. Part 2 is here.


Follow the discussion

  • Oops, something didn't work.

    Getting subscription
    Subscribe to this conversation

  • Where is Anders Hejlsberg?
  • CharlesCharles Welcome Change
    Anders does not work on this, specifically (besides some form of architectural and other high level guidance)......
  • CharlesCharles Welcome Change
    We probably should not allow blank comments.....
  • Johannes Edstoft HansenJohannes Johannes Hansen, Denmark
    Was blank the first time I saw the comment too, but now it shows up fine... An Edit perhaps?

    Edit: Nope he didn't edit it... Now it's blank again?
  • Anders was very instrumental in getting Parallel Extensions off the ground and designed right.  He's still involved regularly on hard design problems, but is a busy guy and works on a lot of things across the company.

  • To Charles and Joe;

    Thanks for the reply. I'm sure Andres has left the Parallel Ext in good hands!

  • Allan LindqvistaL_ Kinect ftw
    cool cool Smiley i like the lazyinit Alot Smiley no more

    public TheThing{
    if(thing_ == null)
     thing_ = new Thing();

    return thing_;

    for me Big Smile

    got  a question though, how does the tpl relate to the ccr? was the ccr more of a incubation project? or does tpl replace ccr?

    and another thing (nagging a bit here Smiley ) what happend to the accelerator project? Smiley (the gpu accelerated library) it seems it whould fit in very well in tpl Smiley and it was soo cool Big Smile love to hear more about that project and whats happening there Smiley


    sort of got my question awsered at 45:xx but if more details could be had i'd be very very happy Smiley especially around the talk with the accelerator guys Smiley
  • Regarding the CCR, someone asked a question related to this on Soma's blog: http://blogs.msdn.com/somasegar/archive/2008/06/02/june-2008-ctp-parallel-extensions-to-the-net-fx.aspx

    ...and Alpa Agarwal, a colleague of mine answered:
    The Concurrency and Coordination Runtime (CCR) and the Task Parallel Library (TPL) are complementary technologies. TPL, which provides support for imperative data and task parallelism, is well suited for synchronous parallelism and patterns such as parallel loops. The Concurrency and Coordination Runtime is well suited for orchestrating many asynchronous components and handling asynchronous I/O in a clever manner. Though TPL and CCR may seem slightly redundant on the surface, we encourage you to try our CTP of Parallel Extensions to the .NET Framework and to provide us with feedback.
  • Allan LindqvistaL_ Kinect ftw
    oh, alright, thanks for the reply Smiley i will definitly try out this tpl ctp:)
    for me personally, it seemed that the ccr was cool, but still a bit cumbersome to use. it felt like i had to adjust most of my code to the ccr, not like the ccr was fitting in to my code.. if that makes sense Tongue Out

    anyhow, i dont feel that way about the tpl. the tpl feems more natural somehow Smiley so my question was more, "is the ccr really needed now that we (almost) have the tpl?"

    but i havent really delved that deep in either of the libraries so im sure there a are stories optimal for each library Smiley

    as a industrial developer though, i really like unification of these kinds of things and given the choise between the ccr and the tpl id go for the tpl  Smiley (although, beeing a nosy little bugger i'd probobly learn both) but if the goodness from ccr could be integraten into the tpl, that whould be even better Smiley but i guess thats waht you're working on now Smiley
  • Allan LindqvistaL_ Kinect ftw
    got another question.. might be a bit noobish but i can live with that Smiley
    how the heck do you control sync without locks? (the statement or mutexes)  that just seems impossible to me Smiley (its obviously not, but i just cant see it) how do you do that in straight up managed code? i'd love to see a deep dive into that.. Smiley
  • Did you guys enable DRM on the high def WMV?  While I was viewing the HD WMV on Vista x86 SP1, mfpmp.exe (Media Foundation Protected Pipeline exe) consistently sucked down about 15% of my (single-core) CPU cycles.  Sad
  • Christian Liensbergerlittleguru <3 Seattle
    Awesome interview. Thanks for sharing!
  • Christian Liensbergerlittleguru <3 Seattle
    One question: Isn't calling the Task.Create method to create the task and then calling .ContinueWith on the task (to specify a delegate that is called when having finished the work) creating a racing condition? Or is it just that the delegate in continue with is just invoked when the task is finished. Means if the task is finished and another continue with is registered it is immediately invoked?
  • William Staceystaceyw Before C# there was darkness...
    I agree the ccr is a bit different.  However, it is the pattern that is important and what makes that model powerful.
    However, reducing apis is also good when possible.  In that vain, I am thinking you could add a Port class in the TPL and use Linq to query the Port(s) and the linq query will replace current Selector model.  Then (I think) we could get best of both worlds and maintain similar programming model.  Wonder what Joe thinks on this idea.

Remove this comment

Remove this thread


Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.