TBB -> oneAPI Threading Building Blocks (oneTBB)



OpenCascade can use TBB, but it will be soon deprecated and replaced by oneTBB. See

Is there any plan for OpenCascade to switch to oneTBB?


Kirill Gavrilov's picture

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.