Hi all, since TBB 2.2 is out we have posted commercial-aligned open source release to our web site http://www.threadingbuildingblocks.org. The list of changes (w.r.t. TBB 2.1 U4 commercial-aligned release) is:
- Incorporates all changes from earlier open-source releases.
- Architecture folders renamed from em64t to intel64 and from itanium
- Major Interface version changed from 3 to 4. Deprecated interfaces
might be removed in future releases.
- Improved memory allocator performance for allocations bigger than 8K.
- Added new thread-bound filters functionality for pipeline.
- New implementation of concurrent_hash_map that improves performance
- A few other small changes in code and documentation.
Speed, not size, right?
"Added new thread-bound filters functionality for pipeline."
Could you elaborate?
"New implementation of concurrent_hash_map that improves performance significantly."
What is the patent about? How significantly?
1) Right, extra memory overhead per large allocation remains the same.
2) Some customers wanted to always execute a particular serial stage on an external thread that has the necessary execution context which can not be passed to another thread (read: to TBB workers). Thread bound filters are just about that. An unfortunate thing is that this design departs from relaxed sequential semantics; thus it should be used with special care.
3) I will let Anton M. answer the hash map question.
For your performance and scalability evaluation, consider also increasing "embedded_block" constant. Unfortunately, current version lacks a method similar to reserve() in concurrent_vector to tune it in place.
That's nice to see that the library is spreading. ;-)
I'd suggest adding more examples - in particular something about enumerable_thread_specific, which is rather poorly documented up to now.