Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.
2452 Discussions

Intel(R) TBB 4.2 update 4 is released and available for download

Kirill_R_Intel
Employee
347 Views

Intel(R) Threading Building Blocks 4.2 update 4 is now released and available for download. Check the What's new article for list of changes.

You can download Intel TBB 4.2 update 4 from commercial and open source sites.

0 Kudos
7 Replies
RafSchietekat
Black Belt
347 Views

On OS X, dining_philosophers doesn't build: #include <unistd.h> to use sleep().

(Added) seismic is still invisible with argument 300... or maybe I just blinked at the wrong time.

Kirill_R_Intel
Employee
347 Views

Thanks Raf for reporting this. We'll double check the samples and fix them if needed.

RafSchietekat
Black Belt
347 Views

Not (yet?) in this release: Clang as the default compiler on OS X, X Window System support on recent Debian-derived Linux distributions.

 

Christophe_H_Intel
347 Views

Hello, Raf,

About Dining Philosophers, could you tell me which OS/X and clang versions you have problems with?  I've tried two different versions (

Darwin 13.1.0 Darwin Kernel Version 13.1.0: Thu Jan 16 19:40:37 PST 2014; root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64; Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)

Darwin 12.5.0 Darwin Kernel Version 12.5.0: Sun Sep 29 13:33:47 PDT 2013; root:xnu-2050.48.12~1/RELEASE_X86_64 x86_64; Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn

and haven't found the error.

Thanks and Regards,
Chris

RafSchietekat
Black Belt
347 Views

I'm seeing "Kernel Version: Darwin 13.1.0" (as in your first version) and "clang-503.0.40" (as in your second version).

"man 3 sleep" mentions "#include <unistd.h>", and if I add that to examples/graph/dining_philosophers/dining_philosophers.cpp it solves the problem "dining_philosophers.cpp:219:5: error: use of undeclared identifier 'sleep'".

(Added) Note that include/tbb/machine/gcc_generic.h includes this header (not immediately obvious why?), but it's not used with Clang as the compiler (verified for "make compiler=clang examples" by adding "#ifndef __GNUC__ / #error / #endif"). I couldn't immediately find the cause of the problem or of its sudden manifestation, but it (now?) also occurs for tbb42_20140122oss (previous update?), which I presume I would also have tested on OS X (or not?), so this may be caused by a recent change in the environment rather than by a change in TBB (meaning I should probably have reported it in a different thread). But it also seems better to just add "#include <unistd.h>" immediately before "#define SLEEP(a) sleep(a)" and reserve one's curiosity for more interesting subjects.

Christophe_H_Intel
347 Views

Hi, Raf,

Thanks for the extra information.  I will fix it by using the tbb_thread method for sleep; seems like it will reduce the complexity of the test and remove the need to update it further.

Regards,
Chris

RafSchietekat
Black Belt
347 Views

If you want to go there, you could do even better by reviewing all uses of sleeping. For example, there are 4 independent but (nearly?) identical definitions of a function MilliSleep(), 3 of rt_sleep(), and also Harness::Sleep(), that are comparable to SLEEP(): functions instead of a macro, more precise by a factor 1000, but all with similar or even greater complexity for the same simple functionality. It's hard to keep a DRY eye looking at that situation... :-)

(2014-05-20 Edited)

Reply