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 (HiveWhiteBoard, HiveSlimEventLoopMgr,
24 AvalancheSchedulerSvc, AlgResourcePool, Prescaler,
25 GaudiSequencer, Test__ViewTester)
43 whiteboard = HiveWhiteBoard(
44 "EventDataSvc", EventSlots=evtslots, OutputLevel=FATAL)
52 slimeventloopmgr = HiveSlimEventLoopMgr(
53 SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=INFO)
62 scheduler = AvalancheSchedulerSvc(
63 ThreadPoolSize=threads,
64 ShowControlFlow=
False,
65 ShowDataDependencies=
False,
72 AlgResourcePool(OutputLevel=FATAL)
79 alg = Prescaler(
"alg" + str(i))
80 alg.OutputLevel = FATAL
81 alg.Cardinality = cardinality
82 alg.PercentPass = 100.0
85 baseSeq = GaudiSequencer(
98 seqAlgs = allAlgs[10 * i:10 * (i + 1)]
109 seqSeqs = allSeqs[10 * i:10 * (i + 1)]
111 filterAlg = Prescaler(
"filterAlg" + str(i))
112 filterAlg.OutputLevel = FATAL
113 filterAlg.Cardinality = cardinality
114 filterAlg.PercentPass = filterPass
116 seq = GaudiSequencer(
118 Members=[filterAlg] + seqSeqs,
123 allSeqSeqs.append(seq)
126 seqSeqs = allSeqs[5 + (10 * i):15 + (10 * i)]
128 filterAlg = Prescaler(
"filterAlg" + str(i + 10))
129 filterAlg.OutputLevel = FATAL
130 filterAlg.Cardinality = cardinality
131 filterAlg.PercentPass = filterPass
133 seq = GaudiSequencer(
134 "seqSeq" + str(i + 10),
135 Members=[filterAlg] + seqSeqs,
140 allSeqSeqs.append(seq)
142 baseSeq.Members = allSeqSeqs
151 EventLoop=slimeventloopmgr,
153 MessageSvcType=
"InertMessageSvc")