PTL
PTL copied to clipboard
Use cases for `TaskManager` and `TaskRunManager`?
In preparing some material on the use of PTL for the Geant4 project and the LHCb experiment, I'm somewhat confused by the PTL::TaskManager and PTL::TaskRunManager classes are so wanted to clarify a few questions.
- Most simply, what are the use cases for these classes vs direct use of
PTL::TaskGroupand/orPTL::ThreadPool? - What's the case for having the default (static, global) threadpool instance used in
PTL::TaskGroupmanaged byPTL::TaskRunManagerrather than as a local static of a free function? - Are any of the member functions of
PTL::TaskManagerother than theasyncones relevant now, or rather, why have trivial wrappers/reproducers of functions directly available in the interface ofPTL::TaskGrouplikewrapandexec?
I realise I'm probably missing something here, but am wondering if some simplification/reduction is possible. This is also relevant for experiments using TBB and making PTL's ability to use this as clear and straightforward to integrate as possible.