1,359 Posts served
5,663 Conversations started
The tbb20_20080226oss development release of Threading Building Blocks includes the following changes (as listed in the CHANGES file included with the release):
tbb_allocator to select between standard allocator and tbb::scalable_allocator when available.pipeline and concurrent_queue.concurrent_hash_map by using tbb_allocator.I differenced the 20080226 code with the previous TBB development release (tbb20_20080207oss), to look more closely at the new changes.
concurrent_queue
The concurrent_queue changes involved lots of new lines. Most of the changes appear to be related to the elimination of spin-waiting. This is one of the most significant changes in the 20080226 version. Many of the changes are related to pthreads and pthread mutexes. There is also some Windows-specific new code.
If you've studied the TBB concurrent_queue source code previously, you'll want to take a look at the new code, since the changes are substantial.
pipeline
As with the concurrent_queue, spin-waiting was eliminated from the TBB pipeline component. The changes to accomplish this in pipeline were much smaller than was the case for concurrent_queue.
Changes in other TBB components
The atomic, cache_aligned_allocator, concurrent_hash_map, concurrent_vector, pipeline, scalable_allocator, and spin_rw_mutex TBB components were changed, but the number of new or changed lines of code for these components was relatively small.
Quite a few ASSERTs were added to the task source files. There were quite a lot of changes to the tbb_misc.* files, many related to the __TBB_WEAK_SYMBOLS defined variable. There were changes to itt_notify.cpp, and scattered changes in some other files.
Build changes
There were a lot of changes to the files in the build subdirectory: the *.inc files for the supported operating systems and the makefiles were modified. Changes were also made to many of the example problem makefiles, and the test makefiles. In addition, there were platform-related changes to the *_tbb_export.def files located in the src/tbb subdirectory.
There's probably not a lot of need for developers to look closely at the build changes, unless you've made your own changes to the build files and want to see how to merge your changes with the latest TBB build files.
Example and test program changes
There are some fairly small changes in the parallel_reduce/convex_hull and test_all/fibonacci examples (in the examples subdirectory). Several of the src/test programs included minor changes.
Conclusion
The tbb20_20080226oss development release embodies almost three weeks of development work (the prior development release is dated 20070207). The new release includes a lot of small improvements in TBB components, build and platform improvements, and fairly major performance improvements for the concurrent_queue and pipeline components.
Kevin Farnham, O'Reilly Media TBB Open Source Community, Freenode IRC #tbb, TBB Mailing Lists
By Ajay Mungara (Intel) on March 13th, 2008 at 12:02 pm
Congratulations on your 100th blog post. I love your passion & consistency of your posts. Keep up the good work. I have personally learned a lot by reading your posts. Thank you.
By Aaron Tersteeg (Intel) on March 13th, 2008 at 10:04 pm
Yes! Way to go! Congratulations on your 100th post! Thank you.
By Kevin Farnham on March 14th, 2008 at 6:45 pm
Ajay and Aaron: thank you for your congratulations! I do feel quite at home writing on the ISN blogs site, and I hope to be able to contribute for a long time into the future.
By Intel® Software Network Blogs » Threading Building Blocks Early March 2008 Development Releases on March 14th, 2008 at 7:32 pm
[...] Ajay and Aaron: thank you...I think it would be inter...There are password requir...Since I am looking for mo...wants a pc as gift or... [...]