Questions tagged [ppl]

The Parallel Patterns Library (PPL) is a C++ library included with Microsoft Visual C++ 2010+ that provides an imperative programming model that promotes scalability and ease-of-use for developing concurrent applications.

The Parallel Patterns Library (PPL) is a C++ library included with Microsoft Visual C++ 2010+ that provides an imperative programming model that promotes scalability and ease-of-use for developing concurrent applications.

135 questions
29
votes
1 answer

What are the differences between Intel TBB and Microsoft PPL?

I'm planning to start "playing" with task-based parallelism for a cross-platform project. I wanted to use Intel Threading Building Blocks. I'm starting with Windows and Visual Studio. As I just want to prototype for the moment, I'm thinking about…
Klaim
  • 60,771
  • 31
  • 121
  • 186
16
votes
8 answers

Parallelizing a for loop gives no performance gain

I have an algorithm which converts a bayer image channel to RGB. In my implementation I have a single nested for loop which iterates over the bayer channel, calculates the rgb index from the bayer index and then sets that pixel's value from the…
eladidan
  • 2,564
  • 2
  • 22
  • 37
13
votes
2 answers

Proxy objects in iterators

I have a big vector of items that belong to a certain class. struct item { int class_id; //some other data... }; The same class_id can appear multiple times in the vector, and the vector is constructed once and then sorted by class_id. So…
user2460318
  • 165
  • 9
12
votes
2 answers

Parallel tasks get better performances with boost::thread than with ppl or OpenMP

I have a C++ program which could be parallelized. I'm using Visual Studio 2010, 32bit compilation. In short the structure of the program is the following #define num_iterations 64 //some number struct result { //some stuff } result…
888
  • 2,869
  • 7
  • 35
  • 58
11
votes
1 answer

Schedulers in Rxcpp

I'm trying to figure out the scheduling model in the C++ version of Rx. Knowing the C# version where there is a simple interface with one Schedule method; The C++ version seems rather complex, with stuff like scheduler, worker, and coordination.…
Michael Sutton
  • 298
  • 2
  • 9
8
votes
1 answer

C++ - lambda expression, capture clause and class members

I am using PPL and parallel_for syntax to have a for loop. In the capture clause, I have 3 variables, one of them is a class member. There is a compilation error due to the presence of a class member among variables in the capture clause. However,…
kiriloff
  • 22,522
  • 32
  • 127
  • 207
6
votes
1 answer

PPL Container performance

I am writing a Server application which takes data from multiple sources at once and stores it in it's internal database (currently a std::set). I have just been looking at Microsoft's ConcRT PPL data structures and wondering about how their…
Thomas Russell
  • 5,480
  • 3
  • 28
  • 61
5
votes
3 answers

Microsoft Parallel Patterns Library (PPL) vs. OpenMP

I want to compare PPL vs. OpenMP regarding their performance, but can't find a detailed investigation on the web. I believe there are not many people who are experienced with PPL. I'm developing my software on Windows, using Visual Studio 2010, and…
Emre Turkoz
  • 828
  • 1
  • 21
  • 33
5
votes
1 answer

How to implement a back-off with Microsoft PPL lightweight task scheduler?

We use a PPL Concurrency::TaskScheduler to dispatch events from our media pipeline to subscribed clients (typically a GUI app). These events are C++ lambdas passed to Concurrency::TaskScheduler::ScheduleTask(). But, under load, the pipeline can…
dripfeed
  • 387
  • 1
  • 10
4
votes
2 answers

Thread IDs with PPL and Parallel Memory Allocation

I have a question about the Microsoft PPL library, and parallel programming in general. I am using FFTW to perform a large set (100,000) of 64 x 64 x 64 FFTs and inverse FFTs. In my current implementation, I use a parallel for loop and allocate the…
Kyle Lynch
  • 235
  • 1
  • 3
  • 6
4
votes
1 answer

Terminate threads in the PPL thread pool

Microsoft's PPL library contains powerful parallelisation concepts, and implements them using a thread pool, so no new threads are normally created when running PPL tasks. However, there doesn't seem to be a way to explicitly stop the threads in…
Patrick
  • 22,097
  • 9
  • 57
  • 125
4
votes
2 answers

Does Windows std::thread uses internally PPL?

Is the implementation of Visual Studio 2015's std::thread internally based on PPL's task system? The background of my question is, does it make sense to use std::thread for several tasks, because they are already executed balanced on the common…
Felix Petriconi
  • 655
  • 5
  • 11
4
votes
1 answer

C++ REST SDK: asynchronous tasks vs. C++11 multithreading

This is a conceptual question on the asynchronous task feature of the C++ REST SDK (and maybe also a bit of a noob question). In a basic application, I have a client and perform several requests, e.g. like http_client client(U("whatever")); for(int…
davidhigh
  • 12,239
  • 1
  • 34
  • 64
4
votes
2 answers

Concurrency::parallel_for (PPL) is creating too many threads

I'm using Concurrency::parallel_for() of Visual Studio 2010's Parallel Patterns Library (PPL) to process an indexed set of tasks (typically, the index set is much larger than the number of threads that can run simultaneously). Each task, before…
4
votes
1 answer

PPL Task - Continuation in UI thread for desktop application

I would like to use a ppl task to do some work in the background, and, upon completion, show the result in a window. In my case the UI-framework is MFC. The structure would be: using namespace concurrency; create_task([] { // this can be run in…
sorrymissjackson
  • 1,817
  • 16
  • 16
1
2 3
8 9