34 """Setup Algorithm Scheduler"""
36 from AthenaCommon.AppMgr
import ServiceMgr
as svcMgr
39 from AthenaCommon.ConcurrencyFlags
import jobproperties
as jps
40 from AthenaCommon.Logging
import logging
42 self.
log = logging.getLogger(
'AlgScheduler' )
44 if (theSched
is None) :
45 from GaudiHive.GaudiHiveConf
import AvalancheSchedulerSvc
46 svcMgr += AvalancheSchedulerSvc()
52 if (thePrec
is None) :
53 from GaudiHive.GaudiHiveConf
import PrecedenceSvc
63 self.
SchedulerSvc.ThreadPoolSize = jps.ConcurrencyFlags.NumThreads()
71 """setup a different Scheduler"""
73 if (self.SchedulerSvc.
getFullName() != theSched.getFullName()) :
75 +
" with " + theSched.getFullName())
76 from AthenaCommon.AppMgr
import ServiceMgr
as svcMgr
77 svcMgr.remove(self.SchedulerSvc)
79 self.SchedulerSvc = theSched
84 self.SchedulerSvc.OutputLevel = level
85 self.PrecedenceSvc.OutputLevel = level
90 if (
'CheckDependencies' in self.SchedulerSvc.
properties() ):
91 self.SchedulerSvc.CheckDependencies = check
93 self.log.warning( self.SchedulerSvc.
getFullName() +
" has no property \"CheckDependencies\"")
98 if (
'ShowControlFlow' in self.SchedulerSvc.
properties() ):
99 self.SchedulerSvc.ShowControlFlow = show
101 self.log.warning(self.SchedulerSvc.
getFullName() +
" has no property \"ShowControlFlow\"")
106 if (
'ShowDataFlow' in self.SchedulerSvc.
properties() ):
107 self.SchedulerSvc.ShowDataFlow = show
109 self.log.warning(self.SchedulerSvc.
getFullName() +
" has no property \"ShowDataFlow\"")
114 if (
'ShowDataDependencies' in self.SchedulerSvc.
properties() ):
115 self.SchedulerSvc.ShowDataDependencies = show
117 self.log.warning(self.SchedulerSvc.
getFullName() +
" has no property \"ShowDataDependencies\"")
122 if (
'DataLoaderAlg' in self.SchedulerSvc.
properties() ):
123 self.SchedulerSvc.DataLoaderAlg = dataLoadAlg
125 self.log.warning(self.SchedulerSvc.
getFullName() +
" has no property \"DataLoaderAlg\"")
130 if (
'EnableConditions' in self.SchedulerSvc.
properties() ):
131 self.SchedulerSvc.EnableConditions = enable
133 self.log.warning(self.SchedulerSvc.
getFullName() +
" has no property \"EnableConditions\"")
138 if (
'VerboseSubSlots' in self.SchedulerSvc.
properties() ):
139 self.SchedulerSvc.VerboseSubSlots = enable
141 self.log.warning(self.SchedulerSvc.
getFullName() +
" has no property \"VerboseSubSlots\"")
146 if (
'Optimizer' in self.SchedulerSvc.
properties() ):
147 self.SchedulerSvc.Optimizer = rule
149 self.log.warning(self.SchedulerSvc.
getFullName() +
" has no property \"Optimizer\"")
150 if (
'TaskPriorityRule' in self.PrecedenceSvc.
properties() ):
151 self.PrecedenceSvc.TaskPriorityRule = rule
153 self.log.warning(self.PrecedenceSvc.
getFullName() +
" has no property \"TaskPriorityRule\"")
158 self.SchedulerSvc.ThreadPoolSize = tps
163 """Get the Scheduler"""
164 return self.SchedulerSvc