Skip to content

Change assembler of the task precedence rules and split the precedence graph implementation

Illya Shapoval requested to merge ishapova/Gaudi:boost-prg into master

This MR moves the responsibility of assembling the CF precedence rules from AlgResourcePool to PrecedenceSvc (the latter is introduced in !390 (merged)), where it should logically belong to. The AlgResourcePool though will continue to assemble the rules for ForwardSchedulerSvc, since the latter doesn't use the PrecedenceSvc.

It also clones/factors out parts of the PrecedenceRulesGraph that are solely used by the ForwardSchedulerSvc (CF realm of the graph, and recursive top-down graph traversals) into a standalone implementation - ControlFlowGraph. This decoupling allows cleaner implementations on both sides, but what I mostly care about - cleaner PrecedenceRulesGraph, which will simplify its upcoming major refactoring I'm currently working on.

This all is accompanied by the corresponding removal of unused code and headers, some downgrade in logging, switch from implicit use of ForwardScheduler to explicit use of AvalancheScheduler in AlgToolsClone.py, and some code style cleanup.

Dependency:

This MR depends on !394 (merged). Go 47238d77...612314db to see the relative differences.

Edited by Illya Shapoval

Merge request reports