- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
TBB 3.0 update 3 commercial-aligned release is available on our open source site.
TBB 3.0 Update 3 commercial-aligned release
Changes (w.r.t. TBB 3.0 Update 2 commercial-aligned release):
- cache_aligned_allocator class reworked to use scalable_aligned_malloc.
- Improved performance of count() and equal_range() methods
in concurrent_unordered_map.
- Improved implementation of 64-bit atomic loads and stores on 32-bit
platforms, including compilation with VC 7.1.
- Added implementation of atomic operations on top of OSAtomic API
provided by Mac OS* X.
- Fixed a data race in task scheduler destruction that on rare occasion
could result in memory corruption.
- Removed gratuitous try/catch blocks surrounding thread function calls
in tbb_thread.
- Xcode* projects were added for sudoku and game_of_life examples.
- Xcode* projects were updated to work without TBB framework.
Open-source contributions integrated:
- MinGW-64 basic support by brsomoza (partially).
- Patch for atomic.h by Andrey Semashev.
- Support for AIX & GCC on PowerPC by Giannis Papadopoulos.
- Various improvements by Raf Schietekat.
Link Copied
12 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting Vladimir Polin (Intel)
- Improved implementation of 64-bit atomic loads and stores on 32-bit
platforms, including compilation with VC 7.1.
What exactly does it mean? TIA
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hummm... here is code from tbb30_035:
And here is code from tbb30_104:
They are bitwise equal... what I'm missing?
[bash].code ALIGN 4 PUBLIC c __TBB_machine_load8 __TBB_machine_Load8: ; If location is on stack, compiler may have failed to align it correctly, so we do dynamic check. mov ecx,4[esp] test ecx,7 jne load_slow ; Load within a cache line sub esp,12 fild qword ptr [ecx] fistp qword ptr [esp] mov eax,[esp] mov edx,4[esp] add esp,12 ret load_slow: ; Load is misaligned. Use cmpxchg8b. push ebx push edi mov edi,ecx xor eax,eax xor ebx,ebx xor ecx,ecx xor edx,edx lock cmpxchg8b qword ptr [edi] pop edi pop ebx ret EXTRN __TBB_machine_store8_slow:PROC .code ALIGN 4 PUBLIC c __TBB_machine_store8 __TBB_machine_Store8: ; If location is on stack, compiler may have failed to align it correctly, so we do dynamic check. mov ecx,4[esp] test ecx,7 jne __TBB_machine_store8_slow ;; tail call to tbb_misc.cpp fild qword ptr 8[esp] fistp qword ptr [ecx] ret end [/bash]
And here is code from tbb30_104:
[bash].code ALIGN 4 PUBLIC c __TBB_machine_load8 __TBB_machine_Load8: ; If location is on stack, compiler may have failed to align it correctly, so we do dynamic check. mov ecx,4[esp] test ecx,7 jne load_slow ; Load within a cache line sub esp,12 fild qword ptr [ecx] fistp qword ptr [esp] mov eax,[esp] mov edx,4[esp] add esp,12 ret load_slow: ; Load is misaligned. Use cmpxchg8b. push ebx push edi mov edi,ecx xor eax,eax xor ebx,ebx xor ecx,ecx xor edx,edx lock cmpxchg8b qword ptr [edi] pop edi pop ebx ret EXTRN __TBB_machine_store8_slow:PROC .code ALIGN 4 PUBLIC c __TBB_machine_store8 __TBB_machine_Store8: ; If location is on stack, compiler may have failed to align it correctly, so we do dynamic check. mov ecx,4[esp] test ecx,7 jne __TBB_machine_store8_slow ;; tail call to tbb_misc.cpp fild qword ptr 8[esp] fistp qword ptr [ecx] ret end [/bash]
They are bitwise equal... what I'm missing?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
"What exactly does it mean?"
This seems be about the replacement of tbb30_056oss/include/tbb/atomic.h:278-305 with a more general arrangement that doesn't have to reflect all possible atomic specialisations.
This seems be about the replacement of tbb30_056oss/include/tbb/atomic.h:278-305 with a more general arrangement that doesn't have to reflect all possible atomic specialisations.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
We distribute the commercial version of TBB as part of a plugin for Internet Explorer and Firefox. But under Windows XP SP3, the MSVCR90.dll is not present by default, and tbb.dll has a dependency on it. So we thought that we could download the source code and build the TBB library ourselves using the configuration that links statically with the C runtime. This works, but the problem is that the resulting dlls (tbb and tbbmalloc) are not signed by Intel Corporation.
Could Intel provide the two versions of the TBB libraries (linked statically or dynamically with the C runtime), and sign the resulting dlls, so that we don't have to distribute the MSVCR90.dll with our plugin?
Thank you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
They do. In the lib directory you should have a sub-directory labeled vc_mt - this version is statically linked against the MS run-time.
Peter
Peter
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Unhappily, this is not the case.
We got the vc_mt folder in both bin/ia32 and bin/intel64 folders, for the commercial version 3.0.
But these folders do not exist in the v3.0 update 3.0 that was just released.
May be this is simply a mistake.
Could Intel provide these libraries, please, for the update 3?
Thanks
We got the vc_mt folder in both bin/ia32 and bin/intel64 folders, for the commercial version 3.0.
But these folders do not exist in the v3.0 update 3.0 that was just released.
May be this is simply a mistake.
Could Intel provide these libraries, please, for the update 3?
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
They are available in the comm install via registration center download, aren't they?
open source version does not contain precompiled vc_mt binaries. They need to be built from sources.
--Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for your answer.
Yes they are available in the commercial version, but not in the Update 3.
Does it mean that we can't have vc_mt signed dlls by Intel for the Updates that Intel releases?
That would be really unfortunate. We would like to use the stable updates when they available.
The other alternative, is to build our plugin and link it statically against the TBB lib files. This way, we won't need to have the dlls signed by Intel. But this is not our first preference.
Please confirm...
Yves
Yes they are available in the commercial version, but not in the Update 3.
Does it mean that we can't have vc_mt signed dlls by Intel for the Updates that Intel releases?
That would be really unfortunate. We would like to use the stable updates when they available.
The other alternative, is to build our plugin and link it statically against the TBB lib files. This way, we won't need to have the dlls signed by Intel. But this is not our first preference.
Please confirm...
Yves
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting yboucher81
Yes they are available in the commercial version, but not in the Update 3.
did you usew_tbb_3.0.3.104.exe file to install the update?
--Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No, we didn't even know that such a file existed.
We downloaded both the tbb30_104oss_win.zip and the tbb30_104oss_src.tgz files, and there is no such w_tbb_3.0.3.104.exe in these packages.
Where can we find this installation file?
Yves
We downloaded both the tbb30_104oss_win.zip and the tbb30_104oss_src.tgz files, and there is no such w_tbb_3.0.3.104.exe in these packages.
Where can we find this installation file?
Yves
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You can find it on your page on registration center sitehttps://registrationcenter.intel.com
--Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
So this was my mistake.
I thought that for the updates, we had to download them through the commercial-aligned open source site, and simply replace the dlls that we distribute.
We will log to the registration center using our account, and download the updates from there.
Sorry for this, and thank you very much for your help.
Yves.
I thought that for the updates, we had to download them through the commercial-aligned open source site, and simply replace the dlls that we distribute.
We will log to the registration center using our account, and download the updates from there.
Sorry for this, and thank you very much for your help.
Yves.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page