The SetNumberOfWorkUnits member function of MultiThreaderBase does at
|
MultiThreaderBase::SetNumberOfWorkUnits(ThreadIdType numberOfWorkUnits) |
|
{ |
|
m_NumberOfWorkUnits = std::clamp<ThreadIdType>(numberOfWorkUnits, 1, m_PimplGlobals->m_GlobalMaximumNumberOfThreads); |
|
} |
m_NumberOfWorkUnits = std::clamp<ThreadIdType>(numberOfWorkUnits, 1, m_PimplGlobals->m_GlobalMaximumNumberOfThreads);
However, SetNumberOfWorkUnits member function of TBBMultiThreader ignores GlobalMaximumNumberOfThreads, as it just does, at
|
TBBMultiThreader::SetNumberOfWorkUnits(ThreadIdType numberOfWorkUnits) |
|
{ |
|
m_NumberOfWorkUnits = std::max(1u, numberOfWorkUnits); |
|
} |
m_NumberOfWorkUnits = std::max(1u, numberOfWorkUnits);
Is that behavior difference intended? If so, why would TBBMultiThreader behave different than the other threaders, with respect to SetNumberOfWorkUnits?
The SetNumberOfWorkUnits member function of MultiThreaderBase does at
ITK/Modules/Core/Common/src/itkMultiThreaderBase.cxx
Lines 259 to 262 in c14ff0e
m_NumberOfWorkUnits = std::clamp<ThreadIdType>(numberOfWorkUnits, 1, m_PimplGlobals->m_GlobalMaximumNumberOfThreads);However, SetNumberOfWorkUnits member function of TBBMultiThreader ignores GlobalMaximumNumberOfThreads, as it just does, at
ITK/Modules/Core/Common/src/itkTBBMultiThreader.cxx
Lines 105 to 108 in c14ff0e
m_NumberOfWorkUnits = std::max(1u, numberOfWorkUnits);Is that behavior difference intended? If so, why would TBBMultiThreader behave different than the other threaders, with respect to SetNumberOfWorkUnits?