Announcing the PPL, Agents and ConcRT efforts for V.next

 

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:

Containers:

  • concurrent_unordered_map and multimap
  • concurrent_unordered_set and multiset

 Algorithms:

  • 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 connect.microsoft.com
  • 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!