View Issue Details

IDProjectCategoryView StatusLast Update
0028199Open CASCADEOCCT:Foundation Classespublic2024-03-03 01:59
ReporteramlAssigned Todpasukhi  
PrioritynormalSeverityfeature 
Status assignedResolutionopen 
Product Version7.1.0 
Target VersionUnscheduled 
Summary0028199: Foundation Classes - Add possibility to set number of threads for parallel execution
DescriptionNowadays OCCT library contains set of algorithms with parallel sections. Now it is possible to turn on parallel mode and not possible to set number of threads.
TagsNo tags attached.
Test case number

Relationships

related to 0026365 closedbugmaster Optimization of work of OSD_Parallel class members for GeomLib_CheckCurveOnSurface 
related to 0033625 newdpasukhi Foundation Classes - for_each parallel integration for c++17 
related to 0033626 newdpasukhi Foundation Classes - for_each parallel integration based on OMP 
parent of 0030573 closedapn OSD_Parallel_TBB: limit number of execution threads using settings of OSD_ThreadPool::DefaultPool() 
related to 0029935 closedbugmaster Foundation Classes - introduce OSD_ThreadPool class defining a thread pool 

Activities

kgv

2019-01-10 16:28

developer   ~0081719

Last edited: 2019-01-10 16:29

Since OSD_ThreadPool introduction by 0029935 it is now possible specifying number of threads within OSD_ThreadPool::Launcher constructor (to specify lower amount of threads from pool) and within OSD_ThreadPool constructor / OSD_ThreadPool::Init() to specify amount of threads in pool.

This does not affect properties of TBB pool, when it is used instead of OSD pool.

msv

2019-01-11 11:12

developer   ~0081751

Just an idea to consider may be during this patch preparation. BO has the option IsParallel. If the user does not set it to true he expects all the code will run in one thread. But the code of GeomLib_CheckCurveOnSurface is always called in multi-thread mode (the argument of Perform() method isTheMultyTheradDisabled = Standard_False).

So, in order to make consistent behavior of the code regarding the flag myRunParallel of BO, it is needed to pass this flag through the chain of calls BOPAlgo_PaveFiller::PerformFF() -> IntTools_FaceFace -> IntTools_Tools::ComputeTolerance() -> GeomLib_CheckCurveOnSurface::Perform().

dpasukhi

2024-03-03 01:57

administrator   ~0115221

Last edited: 2024-03-03 01:59

Main logic - to hide thread number into a single interface and keep this number actual for general OSD_Parallel:For TBB, Threads, OMP, and STD implementations.
OMP and TBB need to call specific global static functions.
Additionally, it will help to disable the general multithreading of OCCT-based solutions(when 0 is the maximum thread number).
A maximum number of threads will be applied and used, especially for cases with servers.

Issue History

Date Modified Username Field Change
2016-12-07 09:47 aml New Issue
2016-12-07 09:47 aml Assigned To => abv
2016-12-07 10:10 kgv Severity minor => feature
2017-01-18 17:32 abv Assigned To abv => ski
2017-01-18 17:32 abv Status new => assigned
2017-07-20 12:31 kgv Target Version 7.2.0 => 7.4.0
2017-07-20 12:34 kgv Relationship added related to 0026365
2018-07-07 02:32 kgv Relationship added related to 0029935
2019-01-10 16:28 kgv Note Added: 0081719
2019-01-10 16:29 kgv Note Edited: 0081719
2019-01-11 11:12 msv Note Added: 0081751
2019-03-25 14:23 kgv Relationship added parent of 0030573
2019-07-10 19:27 abv Target Version 7.4.0 => 7.5.0
2020-09-11 15:34 utverdov Target Version 7.5.0 => 7.6.0
2020-09-11 15:44 kgv Target Version 7.6.0 => 7.5.0
2020-09-22 18:46 szy Target Version 7.5.0 => 7.6.0
2021-09-09 22:39 kgv Assigned To ski =>
2021-09-09 22:39 kgv Category OCCT:Coding => OCCT:Foundation Classes
2021-09-09 22:39 kgv Target Version 7.6.0 => 7.7.0
2022-10-24 10:40 szy Target Version 7.7.0 => 7.8.0
2023-08-01 15:08 dpasukhi Target Version 7.8.0 => Unscheduled
2024-03-03 01:36 dpasukhi Assigned To => dpasukhi
2024-03-03 01:54 dpasukhi Relationship added related to 0033625
2024-03-03 01:54 dpasukhi Relationship added related to 0033626
2024-03-03 01:57 dpasukhi Note Added: 0115221
2024-03-03 01:58 dpasukhi Summary Add possibility to set number of threads for parallel execution => Foundation Classes - Add possibility to set number of threads for parallel execution
2024-03-03 01:58 dpasukhi Note Edited: 0115221
2024-03-03 01:59 dpasukhi Note Edited: 0115221