Migrate from TBB Task API
Intel may decide to remove all task-related APIs from TBB, and already marked it as deprecated. The MR is what we could do to adapt to this change if Intel were to finalize the API decommissioning. The changes bring 1.5% improvement in scheduling overhead, as observed at 18 threads in ATLAS MC reconstruction scenario. Comments are very welcome.
Three components migrated to tbb::task_group
are:
AvalancheSchedulerSvc
ThreadPoolSvc
SerialTaskQueue
@clemenci We don't use SerialTaskQueue
in ATLAS, nor do we use TBBMessageSvc
. I don't know if these two components are used elsewhere. But I took the occasion to revise that code as well just to rewrite similar uses in one go. Please let me know if the components are obsolete.
The MR is based on !1051 (merged), so please do merge the latter first. Before then please find the changes here: eaac64db...99148103.
Merge request reports
Activity
added code cleanup task scheduling labels
mentioned in merge request !1068 (merged)
added 5 commits
- 87c50152 - migrate AvalancheSchedulerSvc to tbb::task_group to address deprecation of tbb::task API
- 317419c0 - migrate ThreadPoolSvc from tbb::task API to tbb::task_group
- 710b3b06 - add tbb::task_group::wait() to ensure emptiness and ~tbb::task_groups() noexcept-ness
- f994a6bf - Bugfixes in ThreadPoolSvc:
- 99148103 - migrate SerialTaskQueue from tbb::task to tbb::task_group API
Toggle commit listadded 46 commits
-
99148103...c7d6fdfd - 41 commits from branch
gaudi:master
- 56b9904a - migrate AvalancheSchedulerSvc to tbb::task_group to address deprecation of tbb::task API
- adc189db - migrate ThreadPoolSvc from tbb::task API to tbb::task_group
- b7d14e54 - add tbb::task_group::wait() to ensure emptiness and ~tbb::task_groups() noexcept-ness
- 4f837e56 - Bugfixes in ThreadPoolSvc:
- 21fb4450 - migrate SerialTaskQueue from tbb::task to tbb::task_group API
Toggle commit list-
99148103...c7d6fdfd - 41 commits from branch
mentioned in issue #132 (closed)
added 225 commits
-
21fb4450...694dcf84 - 220 commits from branch
gaudi:master
- fb46e7ff - migrate AvalancheSchedulerSvc to tbb::task_group to address deprecation of tbb::task API
- 9d93b454 - migrate ThreadPoolSvc from tbb::task API to tbb::task_group
- 6f7b6a12 - add tbb::task_group::wait() to ensure emptiness and ~tbb::task_groups() noexcept-ness
- a7fb325d - Bugfixes in ThreadPoolSvc:
- 6bd1eb37 - migrate SerialTaskQueue from tbb::task to tbb::task_group API
Toggle commit list-
21fb4450...694dcf84 - 220 commits from branch
I've just started looking at the TBB migration stuff again, and I think this MR is important.
We've already learned from the CMS experience about migrating to task groups: https://indico.cern.ch/event/1005030/contributions/4220164/attachments/2191281/3703619/HSF%20Switch%20to%20task_group.pdf
The only question at this point is if a more fundamental refactoring of the scheduling would be appropriate. However, I'd still prioritise this task_group migration in the short term anyway.
mentioned in issue #173 (closed)
mentioned in merge request !1065 (closed)
mentioned in merge request !1193 (merged)
added 142 commits
-
6bd1eb37...e4424a93 - 138 commits from branch
gaudi:master
- 9fdcf724 - migrate AvalancheSchedulerSvc to tbb::task_group to address deprecation of tbb::task API
- ec3ab20e - migrate ThreadPoolSvc from tbb::task API to tbb::task_group
- 4a23c6c0 - add tbb::task_group::wait() to ensure emptiness and ~tbb::task_groups() noexcept-ness
- ae49f632 - Bugfixes in ThreadPoolSvc:
Toggle commit list-
6bd1eb37...e4424a93 - 138 commits from branch
changed milestone to %v36r0
assigned to @clemenci
added lhcb-gaudi-head label
- [2021-05-21 00:04] Validation started with lhcb-gaudi-head#2934
- [2021-05-21 01:07] Validation started with lhcb-run2-gaudi-head#131
- [2021-05-21 01:36] Validation started with lhcb-gaudi-head#2934
Edited by Software for LHCbmentioned in commit 06d75cd6