Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

OpenMP Using TBB ?

Aleksei_G_
Beginner
1,399 Views

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?

0 Kudos
2 Replies
Aleksei_G_
Beginner
1,399 Views

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.

0 Kudos
jimdempseyatthecove
Honored Contributor III
1,399 Views

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

0 Kudos
Reply