-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: don't use TBB in Sequence(numThreads=1) #1444
Conversation
Codecov Report
@@ Coverage Diff @@
## main #1444 +/- ##
=======================================
Coverage 48.59% 48.59%
=======================================
Files 380 380
Lines 20589 20589
Branches 9431 9431
=======================================
Hits 10005 10005
Misses 4097 4097
Partials 6487 6487 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
…s lambda for each event, rather than letting the lamda do the whole thing. This is closer to what tbb does.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add one python test that runs the Sequencer in explicitly in single thread mode? I think there should be a few that do it "by accident" but I'd like to make sure that we have one test case that explicitly covers this.
I added |
* Let's the `Sequencer` bypass the Intel TBB library if `numThreads=1`. * This could simplify debugging. * Uses some wrapper functions for most of the TBB functions that we use in `Sequencer`. * Note that only a small subset of TBB functions are implemented, and `tbb::blocked_range` (which doesn't require any thread setup) is still taken from the TBB library. * However, if `NO_TBB` is defined, then don't use TBB library at all (throws an exception unless `numThreads=1` or `-1`). * This should allow the ACTS Examples to be built without the TBB library (and removes one dependency on ROOT). At the moment, this doesn't have any CMake support for disabling linking with the TBB library. If someone thinks this might be useful, please let me know - or add it to this PR! (cherry picked from commit 2171277)
…lop/v19.x] (#1449) Backport 2171277 from #1444. --- * Let's the `Sequencer` bypass the Intel TBB library if `numThreads=1`. * This could simplify debugging. * Uses some wrapper functions for most of the TBB functions that we use in `Sequencer`. * Note that only a small subset of TBB functions are implemented, and `tbb::blocked_range` (which doesn't require any thread setup) is still taken from the TBB library. * However, if `NO_TBB` is defined, then don't use TBB library at all (throws an exception unless `numThreads=1` or `-1`). * This should allow the ACTS Examples to be built without the TBB library (and removes one dependency on ROOT). At the moment, this doesn't have any CMake support for disabling linking with the TBB library. If someone thinks this might be useful, please let me know - or add it to this PR!
Sequencer
bypass the Intel TBB library ifnumThreads=1
.Sequencer
.tbb::blocked_range
(which doesn't require any thread setup) is still taken from the TBB library.NO_TBB
is defined, then don't use TBB library at all (throws an exception unlessnumThreads=1
or-1
).At the moment, this doesn't have any CMake support for disabling linking with the TBB library. If someone thinks this might be useful, please let me know - or add it to this PR!