TBB -> oneAPI Threading Building Blocks (oneTBB)

portage's picture

Hello,

OpenCascade can use TBB, but it will be soon deprecated and replaced by oneTBB. See
https://software.intel.com/content/www/us/en/develop/articles/intel-onea...

Is there any plan for OpenCascade to switch to oneTBB?

Thanks.

kgv's picture

It doesn't look like moving

It doesn't look like moving to oneTBB will give any benefits to OCCT (in fact, it barely benefits from TBB usage at all, as there is very small number of algorithms in OCCT taking advantage from TBB-specific features). So this movement can be useful for projects using oneTBB directly in their own application (and thus wanting to avoid conflicts) or just to be compatible with the newest version of third-party project.

From what I see from oneTBB revamping manifest (sorry if I put some spoilers - I haven't read a dummy agreement message before downloading a document) - it seems that the main idea is to drop TBB-specific implementations of some features available in modern C++ standards (like tbb::mutex/std::mutex), and deprecating some TBB APIs in favor of new and "better" ones.

I believe that porting will be quite straight-forward for OCCT - probably some updates in CMake scripts and some preprocessor checks for TBB versions to use newer API (if any deprecated was used in OCCT).

You may start from trying to build OCCT with oneTBB and reporting observed issues in OCCT Bugtracker. Of course, the best option would be also providing a patch.

www.opencascade.com

Copyright 2011-2020
OPEN CASCADE SAS
Contact us