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, ForwardSchedulerSvc, 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 = 3
12 algosInFlight = 8
13 
14 
15 InertMessageSvc(OutputLevel=INFO)
16 
17 whiteboard = HiveWhiteBoard("EventDataSvc",
18  EventSlots = evtslots,
19  OutputLevel = INFO)
20 
21 slimeventloopmgr = HiveSlimEventLoopMgr(OutputLevel=DEBUG)
22 
23 scheduler = ForwardSchedulerSvc(MaxEventsInFlight = evtslots,
24  MaxAlgosInFlight = algosInFlight,
25  ThreadPoolSize = algosInFlight,
26  OutputLevel = DEBUG,
27  useGraphFlowManagement = True,
28  DataFlowManagerNext = True,
29  #Optimizer = "DRE",
30  PreemptiveIOBoundTasks = False,
31  DumpIntraEventDynamics = False)
32 
33 AlgResourcePool(OutputLevel = DEBUG)
34 
35 #timeValue = precedence.UniformTimeValue(algoAvgTime=0.2)
36 timeValue = precedence.RealTimeValue(path = "atlas/mcreco/averageTiming.mcreco.TriggerOff.json",
37  defaultTime = 0.0)
38 ifIObound = precedence.UniformBooleanValue(False)
39 #ifIObound = precedence.RndBiased10BooleanValue()
40 
41 sequencer = precedence.CruncherSequence(timeValue, ifIObound, sleepFraction=0.0,
42  cfgPath = "atlas/mcreco/cf.mcreco.TriggerOff.graphml",
43  dfgPath = "atlas/mcreco/df.mcreco.TriggerOff.3rdEvent.graphml",
44  topSequencer = 'AthSequencer/AthMasterSeq',
45  showStat=True).get()
46 
47 ApplicationMgr( EvtMax = evtMax,
48  EvtSel = 'NONE',
49  ExtSvc = [whiteboard],
50  EventLoop = slimeventloopmgr,
51  TopAlg = [sequencer],
52  MessageSvcType = "InertMessageSvc",
53  OutputLevel = DEBUG)
Thread safe extension to the standard MessageSvc.
The Application Manager class.