
Parallel Programming with Microsoft Visual C++ (2011) - dragontamer
https://docs.microsoft.com/en-us/previous-versions/msp-n-p/gg675934(v%3dpandp.10)
======
dragontamer
Although this book is from 2011, it is a very forward looking book. It
describes Microsoft's C++ PPL library, which has a large number of
similarities to Intel's Thread Building Blocks library. In fact, Intel's TBB
includes a PPL compatibility level.

Overall, this book and the PPL library is an excellent example of C++11 code.
Lambdas are used to describe tasks (which are kinda like threads but
different). An overall runtime prevents "oversubscription" of parallel loops,
and also provides a background "Resource Manager" which helps perform work-
stealing when a core runs out of stuff to do. As such, this methodology
allegedly scales well into NUMA architectures.

OpenMP is probably what more people are familiar with, but the task-
decompositions of this library seem to be way more flexible and has a much
lower chance of oversubscription and/or undersubscription.

In short: PPL and TBB are "highly advanced thread pools". With cooperative
multitasking and better overall resource management. And this book seems to
serve as a good introduction to this methodology.

\-------------

I'd love to compare TBB and PPL one day. For now, I think PPL is more
convenient since I'm writing a Windows program. But TBB would basically be the
"Linux" version of this library and methodology.

