13 A totally synthetic test of scheduler performance, with a large number of CF nodes and algorithms, but each algorithm does no work.
15 In the flat mode (nested=False) 1000 algorithms are added directly to the base CF node as a baseline measurement.
17 In nested mode the algorithms are grouped into sets of under a parent CF node.
18 Those nodes are then given 2 different CF node parents (20 in total) which include a prescale algorithm.
20 In sequential mode (sequence=True) the prescale algorithms will randomly deactivate CF nodes at a frequency given by filterPass
23 from Configurables
import AlgResourcePool, AvalancheSchedulerSvc, Gaudi__Sequencer
24 from Configurables
import Gaudi__TestSuite__Prescaler
as Prescaler
25 from Configurables
import HiveSlimEventLoopMgr, HiveWhiteBoard
44 whiteboard = HiveWhiteBoard(
"EventDataSvc", EventSlots=evtslots, OutputLevel=FATAL)
52 slimeventloopmgr = HiveSlimEventLoopMgr(
53 SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=INFO
63 scheduler = AvalancheSchedulerSvc(
64 ThreadPoolSize=threads,
65 ShowControlFlow=
False,
66 ShowDataDependencies=
False,
74 AlgResourcePool(OutputLevel=FATAL)
81 alg = Prescaler(
"alg" + str(i))
82 alg.OutputLevel = FATAL
83 alg.Cardinality = cardinality
84 alg.PercentPass = 100.0
87 baseSeq = Gaudi__Sequencer(
101 seqAlgs = allAlgs[10 * i : 10 * (i + 1)]
102 seq = Gaudi__Sequencer(
113 seqSeqs = allSeqs[10 * i : 10 * (i + 1)]
115 filterAlg = Prescaler(
"filterAlg" + str(i))
116 filterAlg.OutputLevel = FATAL
117 filterAlg.Cardinality = cardinality
118 filterAlg.PercentPass = filterPass
120 seq = Gaudi__Sequencer(
122 Members=[filterAlg] + seqSeqs,
128 allSeqSeqs.append(seq)
131 seqSeqs = allSeqs[5 + (10 * i) : 15 + (10 * i)]
133 filterAlg = Prescaler(
"filterAlg" + str(i + 10))
134 filterAlg.OutputLevel = FATAL
135 filterAlg.Cardinality = cardinality
136 filterAlg.PercentPass = filterPass
138 seq = Gaudi__Sequencer(
139 "seqSeq" + str(i + 10),
140 Members=[filterAlg] + seqSeqs,
146 allSeqSeqs.append(seq)
148 baseSeq.Members = allSeqSeqs
157 EventLoop=slimeventloopmgr,
159 MessageSvcType=
"InertMessageSvc",