On Sat, 29 Sep 2007, Saifi Khan wrote: > Date: Sat, 29 Sep 2007 21:10:53 +0530 (IST) > From: Saifi Khan <[EMAIL PROTECTED]> > Reply-To: <[email protected]> > To: <[email protected]> > Subject: [twincling] threaded building blocks (TBB) > > 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. >
To further add to my mail on TBB, there is a good comparison of TBB and OpenMP at http://softwarecommunity.intel.com/articles/eng/1524.htm There are quite a few very good links towards the end of the comparison paper. To quote a line from the paper "Choosing threading approach is a very important part of parallel application design process". thanks Saifi.

