The Gaudi Framework
master (a36dfcab)
Toggle main menu visibility
Loading...
Searching...
No Matches
BrunelScenarioAvalancheScheduler.py
Go to the documentation of this file.
1
#!/usr/bin/env gaudirun.py
2
12
13
from
Configurables
import
(
14
AlgResourcePool,
15
AvalancheSchedulerSvc,
16
CPUCrunchSvc,
17
HiveSlimEventLoopMgr,
18
HiveWhiteBoard,
19
)
20
from
Gaudi.Configuration
import
*
21
22
# convenience machinery for assembling custom graphs of algorithm precedence rules (w/ CPUCrunchers as algorithms)
23
from
GaudiHive
import
precedence
24
25
# metaconfig
26
evtslots = 1
27
evtMax = 1
28
cardinality = 1
29
algosInFlight = 4
30
algoAvgTime = 0.02
31
32
InertMessageSvc
(OutputLevel=INFO)
33
34
whiteboard =
HiveWhiteBoard
(
35
"EventDataSvc"
, EventSlots=evtslots, OutputLevel=INFO, ForceLeaves=
True
36
)
37
38
slimeventloopmgr =
HiveSlimEventLoopMgr
(
39
SchedulerName=
"AvalancheSchedulerSvc"
, OutputLevel=INFO
40
)
41
42
scheduler =
AvalancheSchedulerSvc
(
43
ThreadPoolSize=algosInFlight,
44
OutputLevel=DEBUG,
45
Optimizer=
"DRE"
,
46
DumpIntraEventDynamics=
False
,
47
)
48
49
AlgResourcePool
(OutputLevel=DEBUG)
50
51
CPUCrunchSvc
(shortCalib=
True
)
52
53
timeValue =
precedence.UniformTimeValue
(avgRuntime=algoAvgTime)
54
# timeValue = precedence.RealTimeValue(
55
# path="lhcb/reco/timing.Brunel.1kE.json", defaultTime=0.0)
56
ifIObound =
precedence.UniformBooleanValue
(
False
)
57
# 296 values, biased approximately as 90% to 10% - corresponds to the .GRAPHML scenario used below
58
# (295 precedence graph algorithms, plus one fake algorithm - FetchFromFile)
59
# ifIObound = precedence.RndBiasedBoolenValue(pattern = {True: 29, False: 267}, seed=1)
60
61
sequencer =
precedence.CruncherSequence
(
62
timeValue,
63
ifIObound,
64
sleepFraction=0.0,
65
cfgPath=
"lhcb/reco/cf.Brunel.graphml"
,
66
dfgPath=
"lhcb/reco/df.Brunel.graphml"
,
67
topSequencer=
"BrunelSequencer"
,
68
).get()
69
70
ApplicationMgr
(
71
EvtMax=evtMax,
72
EvtSel=
"NONE"
,
73
ExtSvc=[whiteboard],
74
EventLoop=slimeventloopmgr,
75
TopAlg=[sequencer],
76
MessageSvcType=
"InertMessageSvc"
,
77
OutputLevel=INFO,
78
)
AlgResourcePool
The AlgResourcePool is a concrete implementation of the IAlgResourcePool interface.
Definition
AlgResourcePool.h:35
ApplicationMgr
The Application Manager class.
Definition
ApplicationMgr.h:54
AvalancheSchedulerSvc
Definition
AvalancheSchedulerSvc.h:114
CPUCrunchSvc
Definition
CPUCrunchSvc.h:22
HiveSlimEventLoopMgr
Definition
HiveSlimEventLoopMgr.h:31
HiveWhiteBoard
Data service base class.
Definition
HiveWhiteBoard.cpp:129
InertMessageSvc
Thread safe extension to the standard MessageSvc.
Definition
InertMessageSvc.h:32
precedence.CruncherSequence
Definition
precedence.py:166
precedence.UniformBooleanValue
Definition
precedence.py:113
precedence.UniformTimeValue
Definition
precedence.py:61
Gaudi.Configuration
Definition
Configuration.py:1
GaudiHive
options
BrunelScenarioAvalancheScheduler.py
Generated on
for The Gaudi Framework by
1.17.0