Announcing the PPL, Agents and ConcRT efforts for


I am super-excited to have been part of multiple announcements that Microsoft made at the AMD Fusion 11 conference held in Bellevue WA this week. 

First, Herb Sutter announced C++ AMP yesterday morning and AMD Fusion11,  which will be an extension of C++ that we are planning to include in our next VC++ compiler.  You can see that announcement on Channel 9, here.  C++ AMP has a number of library functions that PPL programmers will feel comfortable using.  We will also provide a number of associated tools that will make the GPGPU programming experience a lot easier. 

 Soma mentioned this in his blog yesterday and also mentioned that we continue to improve and extend ConcRT, PPL and agents in our next release.

Daniel Moth gave a in-depth talk later at Fusion 11 and talked further about C++ AMP in his blog.

Secondly, but surely not least, I am now able to publicly talk about some of our future features.  They should come to no surprise to our readers that in the next release we are planning to ship many of the sample-pack features you are already using:


  • concurrent_unordered_map and multimap
  • concurrent_unordered_set and multiset


  • parallel_transform
  • parallel_reduce
  • parallel_sort
  • parallel_buffered_sort
  • parallel_radixsort
  • parallel partitioners

 The new task model:

  • task<T> - aka ppl tasks
    • We are planning on renaming continue_with to “then”
    • runtime support allowing enhanced support of cancellation and inlining of tasks
    • when_all, when_any
    • and the operators

We also are also planning on enhancing the runtime to help out developers who are working with NUMA sensitive workloads; to automatically throttle when many threads are created due to cooperative blocking; and to better handle explicit affinity settings and provide more control to the expert developer who is setting affinity for the runtime.  Lastly, we have spent some time making message passing faster and reducing and in many cases eliminating blocking operations when asynchronously sending messages (asend).

Is this everything?  Of course not, but I hope it excites you about the next release of VC++!

Of course, nothing is set in stone.  We haven’t even shipped a beta yet.  So, that means you still have time to provide feedback on what we have built, what we are planning for our next release, and releases following.  You have a couple of great opportunities coming up:

  • We have this great opportunity to sit down with you and members of your team 1:1 with your code coming up in July.  See my earlier blog posting and reply to me by the 20th!  We still have spaces.
  • Provide specific feature requests through
  • Or simply drop me email or reply to my thread in the forum and let me know how you are using ConcRT, PPL and/or Agents, let me know what you like or dislike, and any other feedback you have about our efforts to make concurrency easier with  VC++.

 We would love to hear from you!

Comments (6)

  1. "We are planning on renaming continue_with to “then”"

    Why? I am fully happy with continue_with, I don't feel like then is a better name for what it does.

  2. Any news on the performance of combinable?

  3. Dana Groff says:

    @David, we changed it due to internal feedback.  Of course, we are very open to feedback.  

    @primeMover, I am not sure what you are asking about.  Feel free to send me email with specifics.

  4. Sarang Baheti says:


    I was trying to use auto-parallelizer with VS 2011 Dev Preview, and with flag /Qpar and it fails to link with error message VCConcRT.lib not found.

    Do you have any concrete examples for auto-parallelizer?



  5. Hi Sarang,

    Can you tell if you are running VS express (the one that comes with the Win 8 build), or the VS ultimate?


    Rahul Patil

  6. Hi Sarang,

    This is a compiler related install bug in the preview. Thanks for reporting it. This should be fixed in the next public release. Unfortunately, that means you cant use /QPar for now.

    Also Sarang, note that VcConcRT.lib is an internal compiler dependency – and any of your PPL and concrt specific code should work just fine.



Skip to main content