Posted By: Phil Pennington | Jul 22nd @ 8:55 PM | 5,344 Views | 2 Comments

The C++ Concurrency Runtime is new with Visual Studio 2010 and currently in beta. The runtime encapsulates and extends many new operating system features including NUMA resource locality and User-Mode-Scheduling. 

The Parallel Patterns Library (PPL) provides an imperative programming model that promotes scalability and ease-of-use for developing concurrent applications.  The PPL raises the level of abstraction between your application code and the underlying thread/task scheduling mechanisms by providing generic, type-safe algorithms and containers that act on data in parallel.  The PPL also enables you to develop applications that scale by providing alternatives to shared state.

The PPL provides the following features:

  • Task Parallelism: a mechanism to execute several work items (tasks) in parallel.

  • Parallel algorithms: generic algorithms that act on collections of data in parallel.

  • Parallel containers and objects: generic container types that provide safe concurrent access to their elements.

By using PPL, you can introduce fine-grained parallelism without even having to manage a scheduler.   You would use the Asynchronous Agents Library instead to express coarse-grained parallelism.

You'll want to subscribe to the Native Concurrency blog, find more resource and download example code from Code Gallery

Rating:
0
0

What this example showed is that those same "subgroup of senior specialists" will be responsible for writing the bodies of the parallel for statements, to make sure that no race conditions sneak in. So, in the end, does this really solve the problem or just make it easy for people who don't know how to write concurrent code think that it is now easy to do so (with parallel_for)?

 

Also, how will the PPL and all of the mumbo-jumbo (i.e., Concurrency Runtime) it sits on handle parellizing code in multiple concurrent processes? Or, are we supposed to, from now on, run only a single "parallelized" process on a multi-core host?

 

Microsoft Communities