The Gaudi Framework  master (37c0b60a)
OffloadCMSRecoScenario.py
Go to the documentation of this file.
1 #!/usr/bin/env gaudirun.py
2 
12 
13 from Configurables import AvalancheSchedulerSvc, HiveSlimEventLoopMgr, HiveWhiteBoard
14 from Gaudi.Configuration import *
15 
16 # convenience machinery for assembling custom graphs of algorithm precedence rules (w/ CPUCrunchers as algorithms)
17 from GaudiHive import precedence
18 
19 # metaconfig
20 evtslots = 1
21 evtMax = 5
22 algosInFlight = 4
23 
24 whiteboard = HiveWhiteBoard("EventDataSvc", EventSlots=evtslots, OutputLevel=INFO)
25 
26 slimeventloopmgr = HiveSlimEventLoopMgr(
27  SchedulerName="AvalancheSchedulerSvc", OutputLevel=INFO
28 )
29 
30 AvalancheSchedulerSvc(
31  ThreadPoolSize=algosInFlight,
32  OutputLevel=DEBUG,
33  PreemptiveBlockingTasks=True,
34  MaxBlockingAlgosInFlight=50,
35 )
36 
37 # timeValue = precedence.UniformTimeValue(avgRuntime=0.1)
38 timeValue = precedence.RealTimeValue(path="cms/reco/algs-time.json", defaultTime=0.0)
39 
40 # ifBlocking = precedence.UniformBooleanValue(False)
41 # the CMS reco scenario has 707 algorithms in total
42 ifBlocking = precedence.RndBiasedBooleanValue(pattern={True: 70, False: 637}, seed=1)
43 
45  timeValue,
46  ifBlocking,
47  sleepFraction=0.9,
48  cfgPath="cms/reco/cf.graphml",
49  dfgPath="cms/reco/df.graphml",
50  topSequencer="TopSequencer",
51 ).get()
52 
54  EvtMax=evtMax,
55  EvtSel="NONE",
56  ExtSvc=[whiteboard],
57  EventLoop=slimeventloopmgr,
58  TopAlg=[sequencer],
59  MessageSvcType="InertMessageSvc",
60  OutputLevel=INFO,
61 )
GaudiPartProp.decorators.get
get
decorate the vector of properties
Definition: decorators.py:283
precedence.RealTimeValue
Definition: precedence.py:74
Gaudi.Configuration
Definition: Configuration.py:1
precedence.RndBiasedBooleanValue
Definition: precedence.py:121
precedence.CruncherSequence
Definition: precedence.py:166
ApplicationMgr
Definition: ApplicationMgr.h:57