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
22 from Configurables
import (
24 AvalancheSchedulerSvc,
49 whiteboard = HiveWhiteBoard(
"EventDataSvc", EventSlots=evtslots, OutputLevel=FATAL)
57 slimeventloopmgr = HiveSlimEventLoopMgr(
58 SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=INFO
68 scheduler = AvalancheSchedulerSvc(
69 ThreadPoolSize=threads,
70 ShowControlFlow=
False,
71 ShowDataDependencies=
False,
79 AlgResourcePool(OutputLevel=FATAL)
86 alg = Prescaler(
"alg" + str(i))
87 alg.OutputLevel = FATAL
88 alg.Cardinality = cardinality
89 alg.PercentPass = 100.0
92 baseSeq = GaudiSequencer(
106 seqAlgs = allAlgs[10 * i : 10 * (i + 1)]
107 seq = GaudiSequencer(
118 seqSeqs = allSeqs[10 * i : 10 * (i + 1)]
120 filterAlg = Prescaler(
"filterAlg" + str(i))
121 filterAlg.OutputLevel = FATAL
122 filterAlg.Cardinality = cardinality
123 filterAlg.PercentPass = filterPass
125 seq = GaudiSequencer(
127 Members=[filterAlg] + seqSeqs,
133 allSeqSeqs.append(seq)
136 seqSeqs = allSeqs[5 + (10 * i) : 15 + (10 * i)]
138 filterAlg = Prescaler(
"filterAlg" + str(i + 10))
139 filterAlg.OutputLevel = FATAL
140 filterAlg.Cardinality = cardinality
141 filterAlg.PercentPass = filterPass
143 seq = GaudiSequencer(
144 "seqSeq" + str(i + 10),
145 Members=[filterAlg] + seqSeqs,
151 allSeqSeqs.append(seq)
153 baseSeq.Members = allSeqSeqs
162 EventLoop=slimeventloopmgr,
164 MessageSvcType=
"InertMessageSvc",