The Gaudi Framework  v36r1 (3e2fb5a8)
OffloadCMSRecoScenario.py
Go to the documentation of this file.
1 #!/usr/bin/env gaudirun.py
2 
12 
13 from Gaudi.Configuration import *
14 from Configurables import HiveWhiteBoard, HiveSlimEventLoopMgr, AvalancheSchedulerSvc
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(
25  "EventDataSvc", EventSlots=evtslots, OutputLevel=INFO)
26 
27 slimeventloopmgr = HiveSlimEventLoopMgr(
28  SchedulerName="AvalancheSchedulerSvc", OutputLevel=INFO)
29 
30 AvalancheSchedulerSvc(
31  ThreadPoolSize=algosInFlight,
32  OutputLevel=DEBUG,
33  PreemptiveBlockingTasks=True,
34  MaxBlockingAlgosInFlight=50)
35 
36 #timeValue = precedence.UniformTimeValue(avgRuntime=0.1)
37 timeValue = precedence.RealTimeValue(
38  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(
43  pattern={
44  True: 70,
45  False: 637
46  }, seed=1)
47 
48 sequencer = precedence.CruncherSequence(
49  timeValue,
50  ifBlocking,
51  sleepFraction=0.9,
52  cfgPath="cms/reco/cf.graphml",
53  dfgPath="cms/reco/df.graphml",
54  topSequencer='TopSequencer').get()
55 
57  EvtMax=evtMax,
58  EvtSel='NONE',
59  ExtSvc=[whiteboard],
60  EventLoop=slimeventloopmgr,
61  TopAlg=[sequencer],
62  MessageSvcType="InertMessageSvc",
63  OutputLevel=INFO)
Gaudi::Functional::details::get
auto get(const Handle &handle, const Algo &, const EventContext &) -> decltype(details::deref(handle.get()))
Definition: FunctionalDetails.h:391
Gaudi.Configuration
Definition: Configuration.py:1
ApplicationMgr
Definition: ApplicationMgr.h:57