Hi all:

Threaded building blocks is an interesting approach to achieve
parallelism in a C++ program. The idea is to provide parallelism
in a multi-core environment without having to work with all the
threading details/internals.

Those of us who write 'multi-threaded' programs can appreciate
the fact that it is very to get it wrong ! Race conditions,
deadlocks, priority inversions etc. rule the top of bug list.

So, why is threading difficult to get it right ?

The two common reasons are -
 . incorrect reasoning about shared state.
 . breaking invariants in the program and not restoring them.

Native threading library, NPTL (New POSIX Threads Library)
for linux are common library implementations.

OpenMP is a message passing library designed to support
multi-threading (and effectively parallelism) in large
multi-processing environments.

However, concurrency is crucial to realising future application
architectures and utilising hardware innovations.

With the background on current scenario out of the way,
we can now take a look at TBB more closely.

The canonical website is
http://osstbb.intel.com/

A good discussion with the designer is
http://www.devx.com/go-parallel/Article/35471/6071?pf=true

The above discussion is fairly C++ centric as a large amount of
existing desktop software that needs to explore the capabilities
can now potentially run or runs on multi-core systems.

Let's get the back rolling on this interesting concept.

thanks
Saifi.
 

Reply via email to