AtlasMCRecoScenario.py
Go to the documentation of this file.
1 #!/usr/bin/env gaudirun.py
2 
3 from Gaudi.Configuration import *
4 from Configurables import HiveWhiteBoard, HiveSlimEventLoopMgr, AvalancheSchedulerSvc, AlgResourcePool
5 
6 # convenience machinery for assembling custom graphs of algorithm precedence rules (w/ CPUCrunchers as algorithms)
7 from GaudiHive import precedence
8 
9 # metaconfig
10 evtslots = 1
11 evtMax = 1
12 algosInFlight = 4
13 
14 
15 InertMessageSvc(OutputLevel=INFO)
16 
17 whiteboard = HiveWhiteBoard("EventDataSvc",
18  EventSlots = evtslots,
19  OutputLevel = INFO)
20 
21 slimeventloopmgr = HiveSlimEventLoopMgr(SchedulerName = "AvalancheSchedulerSvc", OutputLevel=DEBUG)
22 
23 scheduler = AvalancheSchedulerSvc(MaxEventsInFlight = evtslots,
24  MaxAlgosInFlight = algosInFlight,
25  ThreadPoolSize = algosInFlight,
26  OutputLevel = DEBUG,
27  #Optimizer = "DRE",
28  PreemptiveIOBoundTasks = False,
29  DumpIntraEventDynamics = False)
30 
31 AlgResourcePool(OutputLevel = DEBUG)
32 
33 #timeValue = precedence.UniformTimeValue(algoAvgTime=0.2)
34 timeValue = precedence.RealTimeValue(path = "atlas/mcreco/averageTiming.mcreco.TriggerOff.json",
35  defaultTime = 0.0)
36 ifIObound = precedence.UniformBooleanValue(False)
37 #ifIObound = precedence.RndBiased10BooleanValue()
38 
39 sequencer = precedence.CruncherSequence(timeValue, ifIObound, sleepFraction=0.0,
40  cfgPath = "atlas/mcreco/cf.mcreco.TriggerOff.graphml",
41  dfgPath = "atlas/mcreco/df.mcreco.TriggerOff.3rdEvent.graphml",
42  topSequencer = 'AthSequencer/AthMasterSeq').get()
43 
44 ApplicationMgr( EvtMax = evtMax,
45  EvtSel = 'NONE',
46  ExtSvc = [whiteboard],
47  EventLoop = slimeventloopmgr,
48  TopAlg = [sequencer],
49  MessageSvcType = "InertMessageSvc",
50  OutputLevel = DEBUG)
Thread safe extension to the standard MessageSvc.
The Application Manager class.