Consolidate and optimize scheduling of blocking tasks
... and add many other entailed (and not so) improvements to AvalancheSchedulerSvc and GaudiHive in general.
Primary:
- integrate scheduling of CPU-blocking tasks into AvalancheSchedulerSvc for better performance and cleaner code;
- remove IOBoundAlgSchedulerSvc and IOBoundAlgTask;
- remove AvalancheSchedulerSvc::promoteAsyncToScheduled and AvalancheSchedulerSvc::promoteAsyncToExecuted;
- introduce TaskSpec for better expressiveness and performance (less repetitive metadata juggling when moving tasks through FSM: less copying and fewer index-to-name conversions).
Secondary:
- prefer std::string_view in AlgResourcePool;
- decouple AlgoExecutionTask from TBB and rename it to AlgTask;
- improve debug messages in AvalancheSchedulerSvc;
- remove unnecessary StatusCode checks and prefer generalized lambdas in AlgTask, and make the latter header-only;
- add (UN)LIKELY to many if-statements;
- rename references to the category of tasks that can (and need to) be scheduled preemptively from 'I/O-bound' to broader 'Blocking' in Algorithm and AvalancheSchedulerSvc properties, as well as a few other facilities.
Edited by Illya Shapoval
Merge request reports
Activity
added code cleanup performance task scheduling labels
Oh, so on my end it looks OK (well, not OK-OK - need to rebase to pick the fix on check-formatting - but at least I see the pipeline ):
hence was wondering what was wrong.
So it looks to me that's to do with the access rights. Will set it to "Everyone". Though it's strange, I have never changed the access rights and it, presumably, always worked.
added 1 commit
- 0fa5a4f1 - merge AlgoExecutionTask and IOBoundAlgTask into AlgTask, introduce TaskSpec...
added 20 commits
-
0fa5a4f1...b1225454 - 8 commits from branch
gaudi:master
- 12481b53 - merge scheduling of blocking tasks with scheduling of regular tasks into a...
- 12efb474 - fix blocking task scheduling constraint and remove unnecessary StatusCode...
- 116a7797 - rename AlgQueueEntry to TaskSpec
- cb505026 - merge AvalancheSchedulerSvc::promoteAsyncToExecuted into AvalancheSchedulerSvc::promoteToExecuted
- 2992c414 - schedule blocking tasks directly from the AvalancheSchedulerSvc (instead of...
- 4802c456 - rename AvalancheSchedulerSvc methods
- 4ef6ed02 - improve debug messages in AvalancheSchedulerSvc
- d33088b7 - mirror the latest changes from IOBoundAlgTask to AlgoExecutionTask, and clean up both
- 36c697d2 - remove IOBoundAlgSchedulerSvc from GaudiHive
- 232f44bc - template AlgoExecutionTask's base class
- b867a6b8 - prefer std::string_view in AlgResourcePool
- def95a4a - merge AlgoExecutionTask and IOBoundAlgTask into AlgTask, introduce TaskSpec...
Toggle commit list-
0fa5a4f1...b1225454 - 8 commits from branch
added 1 commit
- c3d96e2f - extend the category of tasks that can be scheduled preemptively to...
added 1 commit
- b8892ded - fix ref files to reflect renaming of an Algorithm property
added 1 commit
- 08a31133 - fix ref and option files to reflect renaming of properties in Algorithm and AvalancheSchedulerSvc
added 1 commit
- e5235217 - remove move semantics from AvalancheScheduler::signoff, which was added for...
added 1 commit
- 92c9470f - add INFO message about task scheduling settings, and clean up messages in AlgTask
added 1 commit
- b4e126e0 - add INFO message about task scheduling settings, and clean up messages in AlgTask
Please register or sign in to reply