- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi All,
I am using Intel OpenMP on Windows (libiomp5md.dll). Recently I found a strange thing - from time to time my algorithm hangs - all 8 threads cannot enter a named section (declared with #pragma omp critical (sectionname)), although the section name is unique across the code. But the oddest thing about it is that I find tbb.dll among the loaded modules though I do not use TBB and don't link with it.
Also, I then found another version of tbb.dll and tbbmalloc.dll, which I copied to the program directory - with these other DLLs the problem has gone. libiomp5md.dll does not statically depend on any DLLs except ntdll, kernel32 and kernelbase. Am I right that libiomp5md.dll dynamically loads tbb.dll, imports symbols and uses them then?
If so, how can I find out which version of TBB I should use with a particular version of OpenMP?
- Tags:
- Parallel Computing
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
One correction:
Just having tbbmalloc.dll, without tbb.dll, suffices to get rid of the hanging problem. I also noticed "tbbmalloc.dll" string in libiomp5md.dll.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As far as I can determine, OpenMP uses the TBB scalable allocator to improve OpenMP Task enqueing. As to if it is using any other portions of TBB, I haven't seen any indication of this.
Jim Dempsey
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page