ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthenaCommon
python
AtlasThreadedJob.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
2
3
7
8
def
_setupAtlasThreadedJob
():
9
from
AthenaCommon.AppMgr
import
theApp
10
from
AthenaCommon.AppMgr
import
ServiceMgr
as
svcMgr
11
from
AthenaCommon
import
Constants
12
13
from
AthenaCommon.ConcurrencyFlags
import
jobproperties
as
jps
14
15
if
(jps.ConcurrencyFlags.NumProcs() == 0) :
16
theApp.MessageSvcType =
"InertMessageSvc"
17
else
:
18
# InertMessageSvc doesn't play nice with MP
19
theApp.MessageSvcType =
"MessageSvc"
20
21
svcMgr.MessageSvc.Format =
"% F%50W%C%6W%R%e%s%8W%R%T %0W%M"
22
23
numStores = jps.ConcurrencyFlags.NumConcurrentEvents()
24
25
from
StoreGate.StoreGateConf
import
SG__HiveMgrSvc
26
svcMgr += SG__HiveMgrSvc(
"EventDataSvc"
)
27
svcMgr.EventDataSvc.NSlots = numStores
28
29
30
from
GaudiHive.GaudiHiveConf
import
AlgResourcePool
31
arp=AlgResourcePool( OutputLevel = Constants.INFO )
32
arp.TopAlg=[
"AthMasterSeq"
]
#this should enable control flow
33
svcMgr += arp
34
35
from
AthenaCommon.AlgScheduler
import
AlgScheduler
36
AlgScheduler.ShowDataDependencies(
False
)
37
AlgScheduler.ShowControlFlow(
False
)
38
39
from
AthenaCommon.AlgSequence
import
AlgSequence
40
topSequence = AlgSequence()
41
from
SGComps.SGCompsConf
import
SGInputLoader
42
# FailIfNoProxy=False makes it a warning, not an error, if unmet data
43
# dependencies are not found in the store. It should probably be changed
44
# to True eventually.
45
topSequence += SGInputLoader (FailIfNoProxy =
False
)
46
AlgScheduler.setDataLoaderAlg (
'SGInputLoader'
)
47
48
if
(theApp._opts.mtes
or
jps.ConcurrencyFlags.NumProcs()>0):
49
# Either multi-threaded Event Service or hybrid MP+MT
50
from
AthenaServices.AthenaServicesConf
import
AthenaMtesEventLoopMgr
51
52
svcMgr +=
AthenaMtesEventLoopMgr
()
53
svcMgr.AthenaMtesEventLoopMgr.WhiteboardSvc =
"EventDataSvc"
54
svcMgr.AthenaMtesEventLoopMgr.SchedulerSvc = AlgScheduler.getScheduler().getName()
55
56
if
theApp._opts.mtes:
57
svcMgr.AthenaMtesEventLoopMgr.EventRangeChannel = theApp._opts.mtes_channel
58
theApp.EventLoop =
"AthenaMtesEventLoopMgr"
59
else
:
60
from
AthenaServices.AthenaServicesConf
import
AthenaHiveEventLoopMgr
61
62
svcMgr +=
AthenaHiveEventLoopMgr
()
63
svcMgr.AthenaHiveEventLoopMgr.WhiteboardSvc =
"EventDataSvc"
64
svcMgr.AthenaHiveEventLoopMgr.SchedulerSvc = AlgScheduler.getScheduler().getName()
65
66
theApp.EventLoop =
"AthenaHiveEventLoopMgr"
67
68
#
69
71
72
theAuditorSvc = svcMgr.AuditorSvc
73
theApp.AuditAlgorithms=
True
74
from
SGComps.SGCompsConf
import
SGCommitAuditor
75
theAuditorSvc +=
SGCommitAuditor
()
76
77
78
79
_setupAtlasThreadedJob
()
80
81
82
del _setupAtlasThreadedJob
AthenaHiveEventLoopMgr
The default ATLAS batch event loop manager.
Definition
AthenaHiveEventLoopMgr.h:72
AthenaMtesEventLoopMgr
Definition
AthenaMtesEventLoopMgr.h:56
SGCommitAuditor
Definition
SGCommitAuditor.h:25
python.AtlasThreadedJob._setupAtlasThreadedJob
_setupAtlasThreadedJob()
Definition
AtlasThreadedJob.py:8
Generated on
for ATLAS Offline Software by
1.17.0