Draft: Support newer TBB (incl. Intel oneAPI TBB)
Forwarded from https://github.com/key4hep/Gaudi/pull/3
Main changes:
- Prefer finding TBB through
TBBConfig.cmake
over the includedFindTBB.cmake
module - Remove explicit version from
tbb::spin_rw_mutex_v3
(FIXME: needs version check verification) -
tbb/tbb_stddef.h
was removed from recent versions -
tbb::task_arena
must now be constructed with the threadpool size, so we use ashared_ptr
Status:
- Compiles with newer TBB version but needs must more extensive testing:
- does the CMake change find the 'right' locations?
- does this now still work with older TBB and with all newer TBBs?
This should fix #270 (closed)
Merge request reports
Activity
58 58 59 59 virtual void initThisThread() override; 60 60 61 tbb::task_arena* getArena() { return &m_arena; } 61 std::shared_ptr<tbb::task_arena> getArena() { return m_arena; } There is only a single user of
getArena
in Gaudi -- and the only thing it does is callenqueue
. So would it not be better to not expose the (presence of an) underlyingtbb::task_arena
inThreadPoolSvc.h
and instead implement anenqueue
function which forwards to the underlying thread pool?Basically, add
template <typename F> void enqueue( F&& f ) { m_arena->enqueue( std:forward<F>(f) ); }
and remove
getArena
.After all, it is 'expected' that any thread pool offers some
enqueue
functionality to submit tasks to the pool...
added lhcb-gaudi-head lhcb-lcg-dev3lhcb lhcb-lcg-dev4lhcb labels
- [2023-07-06 00:04] Validation started with lhcb-gaudi-head#3617
- [2023-07-06 00:16] Validation started with lhcb-lcg-dev3lhcb#203
- [2023-07-06 00:17] Validation started with lhcb-lcg-dev4lhcb#209
- [2023-07-06 00:27] Validation started with lhcb-run2-gaudi-head#572
- [2023-07-07 00:03] Validation started with lhcb-gaudi-head#3618
- [2023-07-07 00:17] Validation started with lhcb-lcg-dev3lhcb#204
- [2023-07-07 00:17] Validation started with lhcb-lcg-dev4lhcb#210
- [2023-07-07 00:22] Validation started with lhcb-run2-gaudi-head#573
- [2023-07-07 14:14] Validation started with lhcb-lcg-dev4lhcb#211
- [2023-07-08 00:15] Validation started with lhcb-lcg-dev3lhcb#205
- [2023-07-08 00:16] Validation started with lhcb-lcg-dev4lhcb#212
- [2023-07-09 00:13] Validation started with lhcb-lcg-dev3lhcb#206
- [2023-07-09 00:15] Validation started with lhcb-lcg-dev4lhcb#213
- [2023-07-10 00:15] Validation started with lhcb-lcg-dev3lhcb#207
- [2023-07-10 00:15] Validation started with lhcb-lcg-dev4lhcb#214
- [2023-07-11 00:14] Validation started with lhcb-lcg-dev3lhcb#208
- [2023-07-11 00:15] Validation started with lhcb-lcg-dev4lhcb#215
- [2023-07-12 00:15] Validation started with lhcb-lcg-dev3lhcb#209
- [2023-07-12 00:17] Validation started with lhcb-lcg-dev4lhcb#216
- [2023-07-13 00:14] Validation started with lhcb-lcg-dev3lhcb#210
- [2023-07-13 00:14] Validation started with lhcb-lcg-dev4lhcb#217
- [2023-07-14 00:08] Validation started with lhcb-lcg-dev3lhcb#211
- [2023-07-14 00:09] Validation started with lhcb-lcg-dev4lhcb#218
- [2023-07-14 10:21] Validation started with lhcb-lcg-dev4lhcb#219
- [2023-07-15 08:52] Validation started with lhcb-lcg-dev4lhcb#220
- [2023-07-15 09:19] Validation started with lhcb-lcg-dev3lhcb#212
- [2023-07-16 00:13] Validation started with lhcb-lcg-dev3lhcb#213
- [2023-07-16 00:14] Validation started with lhcb-lcg-dev4lhcb#221
- [2023-07-17 00:14] Validation started with lhcb-lcg-dev3lhcb#214
- [2023-07-17 00:15] Validation started with lhcb-lcg-dev4lhcb#222
- [2023-07-18 00:07] Validation started with lhcb-lcg-dev3lhcb#215
- [2023-07-18 00:08] Validation started with lhcb-lcg-dev4lhcb#223
- [2023-07-19 00:04] Validation started with lhcb-lcg-dev3lhcb#216
- [2023-07-19 00:06] Validation started with lhcb-lcg-dev4lhcb#224
- [2023-07-20 00:07] Validation started with lhcb-lcg-dev4lhcb#225
- [2023-07-20 00:15] Validation started with lhcb-lcg-dev3lhcb#217
- [2023-07-21 00:43] Validation started with lhcb-lcg-dev3lhcb#218
- [2023-07-21 00:46] Validation started with lhcb-lcg-dev4lhcb#226
- [2023-07-22 00:08] Validation started with lhcb-lcg-dev3lhcb#219
- [2023-07-22 00:09] Validation started with lhcb-lcg-dev4lhcb#227
- [2023-07-23 00:05] Validation started with lhcb-lcg-dev3lhcb#220
- [2023-07-23 00:07] Validation started with lhcb-lcg-dev4lhcb#228
- [2023-07-24 00:03] Validation started with lhcb-lcg-dev3lhcb#221
- [2023-07-24 00:05] Validation started with lhcb-lcg-dev4lhcb#229
Edited by Software for LHCbremoved lhcb-gaudi-head label
removed lhcb-lcg-dev3lhcb label
removed lhcb-lcg-dev4lhcb label
mentioned in merge request !1495 (merged)
Superseded by !1495 (merged)