occt: master c7b59798

Author Committer Branch Timestamp Parent
msv bugmaster master 2015-02-05 12:49:35 master a61133c8
Affected Issues  0024826: Wrapping of parallelisation algorithms
Changeset 0024826: Wrapping of parallelisation algorithms

Simple primitives to parallelize loops type "for" and "foreach" were implemented. The primitives encapsulates complete logic for creating and managing parallel context of loops. Moreover the primitives may be a wrapper for some primitives from 3rd-party library - TBB.

To use it is necessary to implement TBB like interface which is based on functors. For example:

Class Functor
{
public:
  void operator() ([proccesing instance]) const
  {
    //...
  }
};

In the body of the operator () should be implemented thread-safe logic of computations that can be performed in parallel context. If parallelized loop iterates on the collections with direct access by index (such as Vector, Array), it is more efficient to use the primitive ParallelFor (because it has no critical section).

All parts of OCC code which are using tbb were changed on new primitives.

0024826: Wrapping of parallelisation algorithms

Small fix.
mod - src/BOPAlgo/BOPAlgo_BuilderSolid.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_2.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_3.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_9.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_ShellSplitter.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_WireSplitter.cxx Diff File
add - src/BOPCol/BOPCol_Parallel.hxx Diff File
rm - src/BOPCol/BOPCol_TBB.hxx Diff File
mod - src/BOPCol/FILES Diff File
mod - src/BOPDS/BOPDS_Iterator.cxx Diff File
mod - src/BOPTest/BOPTest_CheckCommands.cxx Diff File
rm - src/BOPTest/BOPTest_Chronometer.hxx Diff File
mod - src/BOPTest/BOPTest_PartitionCommands.cxx Diff File
mod - src/BOPTest/FILES Diff File
mod - src/BOPTools/BOPTools_AlgoTools_1.cxx Diff File
mod - src/BRepMesh/BRepMesh_FastDiscret.cxx Diff File
mod - src/BRepMesh/BRepMesh_IncrementalMesh.cxx Diff File
mod - src/BRepMesh/BRepMesh_WireChecker.cxx Diff File
mod - src/BRepMesh/BRepMesh_WireInterferenceChecker.cxx Diff File
mod - src/BRepMesh/BRepMesh_WireInterferenceChecker.hxx Diff File
mod - src/MeshTest/MeshTest_PluginCommands.cxx Diff File
mod - src/OpenGl/OpenGl_SceneGeometry.cxx Diff File
mod - src/OSD/EXTERNLIB Diff File
mod - src/OSD/FILES Diff File
add - src/OSD/OSD_Parallel.cxx Diff File
add - src/OSD/OSD_Parallel.hxx Diff File
mod - src/QABugs/QABugs_19.cxx Diff File
mod - src/QANCollection/QANCollection_Stl.cxx Diff File