Skip to content
Snippets Groups Projects

Consolidate and optimize scheduling of blocking tasks

Merged Illya Shapoval requested to merge ishapova/Gaudi:offload-cleanup into master

... 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

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
Please register or sign in to reply
Loading