Thanks!triplus wrote:Latest OCC/OCE should use algorithms that do this in parallel.
Then, if something is to be "improved" today, it is what issue #2750 indicates. Right?
Thanks!triplus wrote:Latest OCC/OCE should use algorithms that do this in parallel.
I think so.abdullah wrote:Then, if something is to be "improved" today, it is what issue #2750 indicates. Right?
I guess that at compilation time it should be possible to ldd the detected OCCT library to see if libtbb is present. I do not know any specific macro or similar...sgrogan wrote: It would probably be nice if we could detect tbb support in the "About FreeCAD", although I think it's just about how OCCT was compiled now?
I was thinking Cmake.config but I don't know where to look. VTK might be good too. Where does this happen in the source?abdullah wrote: I guess that at compilation time it should be possible to ldd the detected OCCT library to see if libtbb is present. I do not know any specific macro or similar...
The content is inserted into dialog / copied to clipboard in:sgrogan wrote:I was thinking Cmake.config but I don't know where to look. VTK might be good too. Where does this happen in the source?
Code: Select all
str << "Python version: " << PY_VERSION << endl;
str << "Qt version: " << QT_VERSION_STR << endl;
str << "Coin version: " << COIN_VERSION << endl;
#if defined(HAVE_OCC_VERSION)
str << "OCC version: "
<< OCC_VERSION_MAJOR << "."
<< OCC_VERSION_MINOR << "."
<< OCC_VERSION_MAINTENANCE
#ifdef OCC_VERSION_DEVELOPMENT
<< "." OCC_VERSION_DEVELOPMENT
#endif
<< endl;
Yes. Although the scope of enabling this in all places in FreeCAD where boolean operations are used is likely too broad. As it was done for all methods in Part workbench maybe issue #2750 could be closed as resolved.abdullah wrote:Then, if something is to be "improved" today, it is what issue #2750 indicates. Right?
Yes that is correct. At the beginning i remember TBB was needed but that changed later on. Therefore this is the current situation (OCE ATM provides additional OpenMP option):sgrogan wrote:My understanding is that OCCT has their own multi-threading algorithms and will use tbb if available.
https://forum.freecadweb.org/viewtopic. ... 80#p142368Intel TBB, optional for several modules.
It is NOT mandatory for activating parallel algorithms in OCCT,
but can be more efficient for this task then built-in OCCT parallelization routines (OSD_Parallel).
Can you check for:abdullah wrote: The thing is that I have not found something like OCC_TBB to say whether OCC TBB support was compiled in or not.
Code: Select all
set (OpenCASCADE_WITH_TBB
Not sure where that file should be.sgrogan wrote:in file OpenCASCADEConfig.cmake
You need the OCCT dev files from the PPA. This file is available at FreeCAD compile time.
Code: Select all
ls /usr/lib/cmake/opencascade/
OpenCASCADEApplicationFrameworkTargets.cmake OpenCASCADEDataExchangeTargets-release.cmake OpenCASCADEModelingAlgorithmsTargets.cmake OpenCASCADEModelingDataTargets-release.cmake
OpenCASCADEApplicationFrameworkTargets-release.cmake OpenCASCADEFoundationClassesTargets.cmake OpenCASCADEModelingAlgorithmsTargets-release.cmake OpenCASCADEVisualizationTargets.cmake
OpenCASCADEDataExchangeTargets.cmake OpenCASCADEFoundationClassesTargets-release.cmake OpenCASCADEModelingDataTargets.cmake OpenCASCADEVisualizationTargets-release.cmake
Code: Select all
ii libopencascade-data-exchange-7.1.0:amd64 7.1.0-0ppa1~ubuntu16.04.1 amd64 Open CASCADE Technology CAE platform shared library
ii libopencascade-data-exchange-dev:amd64 7.1.0-0ppa1~ubuntu16.04.1 amd64 Open CASCADE Technology platform library development files
ii libopencascade-foundation-7.1.0:amd64 7.1.0-0ppa1~ubuntu16.04.1 amd64 Open CASCADE Technology CAE platform shared library
ii libopencascade-foundation-dev:amd64 7.1.0-0ppa1~ubuntu16.04.1 amd64 Open CASCADE Technology platform library development files
ii libopencascade-modeling-algorithms-7.1.0:amd64 7.1.0-0ppa1~ubuntu16.04.1 amd64 Open CASCADE Technology CAE platform shared library
ii libopencascade-modeling-algorithms-dev:amd64 7.1.0-0ppa1~ubuntu16.04.1 amd64 Open CASCADE Technology platform library development files
ii libopencascade-modeling-data-7.1.0:amd64 7.1.0-0ppa1~ubuntu16.04.1 amd64 Open CASCADE Technology CAE platform shared library
ii libopencascade-modeling-data-dev:amd64 7.1.0-0ppa1~ubuntu16.04.1 amd64 Open CASCADE Technology platform library development files
ii libopencascade-ocaf-7.1.0:amd64 7.1.0-0ppa1~ubuntu16.04.1 amd64 Open CASCADE Technology CAE platform shared library
ii libopencascade-ocaf-dev:amd64 7.1.0-0ppa1~ubuntu16.04.1 amd64 Open CASCADE Technology platform library development files
ii libopencascade-visualization-7.1.0:amd64 7.1.0-0ppa1~ubuntu16.04.1 amd64 Open CASCADE Technology CAE platform shared library
ii libopencascade-visualization-dev:amd64 7.1.0-0ppa1~ubuntu16.04.1 amd64 Open CASCADE Technology platform library development files
Thanks for checking. It looks like we have a packaging bug. We are splitting the OCC package and the config file isn't specific to any of the sub-packages so we are not picking up the config file. I'm not sure where we should install it from, @NormandC do you have any thoughts?abdullah wrote: The headers in the include directory include conditional compilation with HAVE_TBB macro. One of the cmake files should define this pre-processor with add_definitions(). However, I have grep all the cmake files above search for TBB and none is to be found...
At the moment, none whatsoever...sgrogan wrote:We are splitting the OCC package and the config file isn't specific to any of the sub-packages so we are not picking up the config file. I'm not sure where we should install it from, @NormandC do you have any thoughts?
Code: Select all
-DUSE_TBB:BOOL=on \