Executors always only even execute a single step, as seen by the transform.
More...
|
def | __init__ (self, name='Dummy', trf=None, conf=None, inData=set(), outData=set()) |
| Base class initaliser for transform executors. More...
|
|
def | myMerger (self) |
| Now define properties for these data members. More...
|
|
def | name (self) |
|
def | name (self, value) |
|
def | substep (self) |
|
def | trf (self) |
|
def | trf (self, value) |
|
def | inData (self) |
|
def | inData (self, value) |
|
def | inDataUpdate (self, value) |
|
def | outData (self) |
|
def | outData (self, value) |
|
def | outDataUpdate (self, value) |
|
def | input (self) |
|
def | output (self) |
|
def | extraMetadata (self) |
|
def | hasExecuted (self) |
|
def | rc (self) |
|
def | errMsg (self) |
|
def | validation (self) |
|
def | validation (self, value) |
|
def | hasValidated (self) |
|
def | isValidated (self) |
|
def | first (self) |
|
def | preExeStartTimes (self) |
|
def | exeStartTimes (self) |
|
def | exeStopTimes (self) |
|
def | valStartTimes (self) |
|
def | valStopTimes (self) |
|
def | preExeCpuTime (self) |
|
def | preExeWallTime (self) |
|
def | cpuTime (self) |
|
def | usrTime (self) |
|
def | sysTime (self) |
|
def | wallTime (self) |
|
def | memStats (self) |
|
def | memAnalysis (self) |
|
def | postExeCpuTime (self) |
|
def | postExeWallTime (self) |
|
def | validationCpuTime (self) |
|
def | validationWallTime (self) |
|
def | cpuTimeTotal (self) |
|
def | wallTimeTotal (self) |
|
def | eventCount (self) |
|
def | reSimEvent (self) |
|
def | athenaMP (self) |
|
def | dbMonitor (self) |
|
def | setPreExeStart (self) |
|
def | setValStart (self) |
|
def | preExecute (self, input=set(), output=set()) |
|
def | execute (self) |
|
def | postExecute (self) |
|
def | validate (self) |
|
def | doAll (self, input=set(), output=set()) |
| Convenience function. More...
|
|
Executors always only even execute a single step, as seen by the transform.
Definition at line 126 of file trfExe.py.
◆ __init__()
def python.trfExe.transformExecutor.__init__ |
( |
|
self, |
|
|
|
name = 'Dummy' , |
|
|
|
trf = None , |
|
|
|
conf = None , |
|
|
|
inData = set() , |
|
|
|
outData = set() |
|
) |
| |
Base class initaliser for transform executors.
- Parameters
-
name | Transform name |
trf | Parent transform |
conf | executorConfig object (if None then set from the trf directly) |
inData | Data inputs this transform can start from. This should be a list, tuple or set consisting of each input data type. If a tuple (or list) is passed as a set member then this is interpreted as meaning that all of the data members in that tuple are necessary as an input. |
- Note
- Curiously, sets are not allowed to be members of sets (they are not hashable, so no sub-sets)
- Parameters
-
outData | List of outputs this transform can produce (list, tuple or set can be used) |
Reimplemented in python.trfExe.dummyExecutor.
Definition at line 137 of file trfExe.py.
137 def __init__(self, name = 'Dummy', trf = None, conf = None, inData = set(), outData =
set()):
143 self._inData =
set(inData)
144 self._outData =
set(outData)
145 if 'NULL' in self._inData:
146 self._inData.
remove(
'NULL')
147 self._inData.
add(
'inNULL')
148 if 'NULL' in self._outData:
149 self._outData.
remove(
'NULL')
150 self._outData.
add(
'outNULL')
153 dataOverlap = self._inData & self._outData
154 if len(dataOverlap) > 0:
155 raise trfExceptions.TransformSetupException(trfExit.nameToCode(
'TRF_GRAPH_ERROR'),
156 'Executor definition error, executor {0} is not allowed to produce and consume the same datatypes. Duplicated input/output types {1}'.
format(self._name,
' '.
join(dataOverlap)))
164 self.conf = executorConfig()
166 self.conf.setFromTransform(trf)
169 self._hasExecuted =
False
174 self._hasValidated =
False
175 self._isValidated =
False
180 self._extraMetadata = {}
185 self._preExeStart =
None
186 self._exeStart = self._exeStop =
None
187 self._valStart = self._valStop =
None
189 self._memLeakResult = {}
190 self._memFullFile =
None
191 self._eventCount =
None
194 self._athenaConcurrentEvents = 0
195 self._dbMonitor =
None
196 self._resimevents =
None
197 self._alreadyInContainer =
None
198 self._containerSetup =
None
◆ athenaMP()
def python.trfExe.transformExecutor.athenaMP |
( |
|
self | ) |
|
Definition at line 451 of file trfExe.py.
452 return self._athenaMP
◆ cpuTime()
def python.trfExe.transformExecutor.cpuTime |
( |
|
self | ) |
|
Definition at line 365 of file trfExe.py.
366 if self._exeStart
and self._exeStop:
◆ cpuTimeTotal()
def python.trfExe.transformExecutor.cpuTimeTotal |
( |
|
self | ) |
|
Definition at line 429 of file trfExe.py.
429 def cpuTimeTotal(self):
430 if self._preExeStart
and self._valStop:
431 return calcCpuTime(self._preExeStart, self._valStop)
◆ dbMonitor()
def python.trfExe.transformExecutor.dbMonitor |
( |
|
self | ) |
|
Definition at line 455 of file trfExe.py.
456 return self._dbMonitor
◆ doAll()
def python.trfExe.transformExecutor.doAll |
( |
|
self, |
|
|
|
input = set() , |
|
|
|
output = set() |
|
) |
| |
Convenience function.
Definition at line 498 of file trfExe.py.
498 def doAll(self, input=set(), output=
set()):
499 self.preExecute(input, output)
◆ errMsg()
def python.trfExe.transformExecutor.errMsg |
( |
|
self | ) |
|
◆ eventCount()
def python.trfExe.transformExecutor.eventCount |
( |
|
self | ) |
|
Definition at line 443 of file trfExe.py.
443 def eventCount(self):
444 return self._eventCount
◆ execute()
def python.trfExe.transformExecutor.execute |
( |
|
self | ) |
|
◆ exeStartTimes()
def python.trfExe.transformExecutor.exeStartTimes |
( |
|
self | ) |
|
Definition at line 335 of file trfExe.py.
335 def exeStartTimes(self):
336 return self._exeStart
◆ exeStopTimes()
def python.trfExe.transformExecutor.exeStopTimes |
( |
|
self | ) |
|
Definition at line 339 of file trfExe.py.
339 def exeStopTimes(self):
◆ extraMetadata()
def python.trfExe.transformExecutor.extraMetadata |
( |
|
self | ) |
|
Definition at line 291 of file trfExe.py.
291 def extraMetadata(self):
292 return self._extraMetadata
◆ first()
def python.trfExe.transformExecutor.first |
( |
|
self | ) |
|
- Note
- At the moment only athenaExecutor sets this property, but that might be changed...
Definition at line 324 of file trfExe.py.
325 if hasattr(self,
'_first'):
◆ hasExecuted()
def python.trfExe.transformExecutor.hasExecuted |
( |
|
self | ) |
|
Definition at line 295 of file trfExe.py.
295 def hasExecuted(self):
296 return self._hasExecuted
◆ hasValidated()
def python.trfExe.transformExecutor.hasValidated |
( |
|
self | ) |
|
Definition at line 315 of file trfExe.py.
315 def hasValidated(self):
316 return self._hasValidated
◆ inData() [1/2]
def python.trfExe.transformExecutor.inData |
( |
|
self | ) |
|
◆ inData() [2/2]
def python.trfExe.transformExecutor.inData |
( |
|
self, |
|
|
|
value |
|
) |
| |
Definition at line 241 of file trfExe.py.
241 def inData(self, value):
242 self._inData =
set(value)
◆ inDataUpdate()
def python.trfExe.transformExecutor.inDataUpdate |
( |
|
self, |
|
|
|
value |
|
) |
| |
Definition at line 244 of file trfExe.py.
244 def inDataUpdate(self, value):
246 if '_inData' in dir(self):
247 self._inData.
update(value)
◆ input()
def python.trfExe.transformExecutor.input |
( |
|
self | ) |
|
- Note
- This returns the actual input data with which this executor ran (c.f.
inData
which returns all the possible data types this executor could run with)
Definition at line 275 of file trfExe.py.
277 if '_input' in dir(self):
◆ isValidated()
def python.trfExe.transformExecutor.isValidated |
( |
|
self | ) |
|
Definition at line 319 of file trfExe.py.
319 def isValidated(self):
320 return self._isValidated
◆ memAnalysis()
def python.trfExe.transformExecutor.memAnalysis |
( |
|
self | ) |
|
Definition at line 397 of file trfExe.py.
397 def memAnalysis(self):
398 return self._memLeakResult
◆ memStats()
def python.trfExe.transformExecutor.memStats |
( |
|
self | ) |
|
Definition at line 393 of file trfExe.py.
394 return self._memStats
◆ myMerger()
def python.trfExe.transformExecutor.myMerger |
( |
|
self | ) |
|
Now define properties for these data members.
Definition at line 206 of file trfExe.py.
207 return self._myMerger
◆ name() [1/2]
def python.trfExe.transformExecutor.name |
( |
|
self | ) |
|
◆ name() [2/2]
def python.trfExe.transformExecutor.name |
( |
|
self, |
|
|
|
value |
|
) |
| |
◆ outData() [1/2]
def python.trfExe.transformExecutor.outData |
( |
|
self | ) |
|
◆ outData() [2/2]
def python.trfExe.transformExecutor.outData |
( |
|
self, |
|
|
|
value |
|
) |
| |
Definition at line 261 of file trfExe.py.
261 def outData(self, value):
262 self._outData =
set(value)
◆ outDataUpdate()
def python.trfExe.transformExecutor.outDataUpdate |
( |
|
self, |
|
|
|
value |
|
) |
| |
Definition at line 264 of file trfExe.py.
264 def outDataUpdate(self, value):
266 if '_outData' in dir(self):
267 self._outData.
update(value)
◆ output()
def python.trfExe.transformExecutor.output |
( |
|
self | ) |
|
- Note
- This returns the actual output data with which this executor ran (c.f.
outData
which returns all the possible data types this executor could run with)
Definition at line 284 of file trfExe.py.
286 if '_output' in dir(self):
◆ postExeCpuTime()
def python.trfExe.transformExecutor.postExeCpuTime |
( |
|
self | ) |
|
Definition at line 401 of file trfExe.py.
401 def postExeCpuTime(self):
402 if self._exeStop
and self._valStart:
◆ postExecute()
def python.trfExe.transformExecutor.postExecute |
( |
|
self | ) |
|
◆ postExeWallTime()
def python.trfExe.transformExecutor.postExeWallTime |
( |
|
self | ) |
|
Definition at line 408 of file trfExe.py.
408 def postExeWallTime(self):
409 if self._exeStop
and self._valStart:
◆ preExeCpuTime()
def python.trfExe.transformExecutor.preExeCpuTime |
( |
|
self | ) |
|
Definition at line 351 of file trfExe.py.
351 def preExeCpuTime(self):
352 if self._preExeStart
and self._exeStart:
353 return calcCpuTime(self._preExeStart, self._exeStart)
◆ preExecute()
def python.trfExe.transformExecutor.preExecute |
( |
|
self, |
|
|
|
input = set() , |
|
|
|
output = set() |
|
) |
| |
Reimplemented in python.trfExe.archiveExecutor, python.trfExe.bsMergeExecutor, python.trfExe.NTUPMergeExecutor, python.trfExe.DQMPostProcessExecutor, python.trfExe.DQMergeExecutor, python.trfExe.reductionFrameworkExecutor, python.trfExe.POOLMergeExecutor, python.trfExe.athenaExecutor, python.trfExe.scriptExecutor, and python.trfExe.logscanExecutor.
Definition at line 470 of file trfExe.py.
470 def preExecute(self, input = set(), output =
set()):
471 self.setPreExeStart()
472 msg.info(
'Preexecute for %s', self._name)
◆ preExeStartTimes()
def python.trfExe.transformExecutor.preExeStartTimes |
( |
|
self | ) |
|
Definition at line 331 of file trfExe.py.
331 def preExeStartTimes(self):
332 return self._preExeStart
◆ preExeWallTime()
def python.trfExe.transformExecutor.preExeWallTime |
( |
|
self | ) |
|
Definition at line 358 of file trfExe.py.
358 def preExeWallTime(self):
359 if self._preExeStart
and self._exeStart:
◆ rc()
def python.trfExe.transformExecutor.rc |
( |
|
self | ) |
|
◆ reSimEvent()
def python.trfExe.transformExecutor.reSimEvent |
( |
|
self | ) |
|
Definition at line 447 of file trfExe.py.
447 def reSimEvent(self):
448 return self._resimevents
◆ setPreExeStart()
def python.trfExe.transformExecutor.setPreExeStart |
( |
|
self | ) |
|
Definition at line 460 of file trfExe.py.
460 def setPreExeStart(self):
461 if self._preExeStart
is None:
462 self._preExeStart = os.times()
463 msg.debug(
'preExeStart time is {0}'.
format(self._preExeStart))
◆ setValStart()
def python.trfExe.transformExecutor.setValStart |
( |
|
self | ) |
|
Definition at line 465 of file trfExe.py.
465 def setValStart(self):
466 if self._valStart
is None:
467 self._valStart = os.times()
468 msg.debug(
'valStart time is {0}'.
format(self._valStart))
◆ substep()
def python.trfExe.transformExecutor.substep |
( |
|
self | ) |
|
◆ sysTime()
def python.trfExe.transformExecutor.sysTime |
( |
|
self | ) |
|
Definition at line 379 of file trfExe.py.
380 if self._exeStart
and self._exeStop:
381 return self._exeStop[3] - self._exeStart[3]
◆ trf() [1/2]
def python.trfExe.transformExecutor.trf |
( |
|
self | ) |
|
◆ trf() [2/2]
def python.trfExe.transformExecutor.trf |
( |
|
self, |
|
|
|
value |
|
) |
| |
◆ usrTime()
def python.trfExe.transformExecutor.usrTime |
( |
|
self | ) |
|
Definition at line 372 of file trfExe.py.
373 if self._exeStart
and self._exeStop:
374 return self._exeStop[2] - self._exeStart[2]
◆ validate()
def python.trfExe.transformExecutor.validate |
( |
|
self | ) |
|
◆ validation() [1/2]
def python.trfExe.transformExecutor.validation |
( |
|
self | ) |
|
Definition at line 307 of file trfExe.py.
308 return self._validation
◆ validation() [2/2]
def python.trfExe.transformExecutor.validation |
( |
|
self, |
|
|
|
value |
|
) |
| |
Definition at line 311 of file trfExe.py.
312 self._validation = value
◆ validationCpuTime()
def python.trfExe.transformExecutor.validationCpuTime |
( |
|
self | ) |
|
Definition at line 415 of file trfExe.py.
415 def validationCpuTime(self):
416 if self._valStart
and self._valStop:
◆ validationWallTime()
def python.trfExe.transformExecutor.validationWallTime |
( |
|
self | ) |
|
Definition at line 422 of file trfExe.py.
422 def validationWallTime(self):
423 if self._valStart
and self._valStop:
◆ valStartTimes()
def python.trfExe.transformExecutor.valStartTimes |
( |
|
self | ) |
|
Definition at line 343 of file trfExe.py.
343 def valStartTimes(self):
344 return self._valStart
◆ valStopTimes()
def python.trfExe.transformExecutor.valStopTimes |
( |
|
self | ) |
|
Definition at line 347 of file trfExe.py.
347 def valStopTimes(self):
◆ wallTime()
def python.trfExe.transformExecutor.wallTime |
( |
|
self | ) |
|
Definition at line 386 of file trfExe.py.
387 if self._exeStart
and self._exeStop:
◆ wallTimeTotal()
def python.trfExe.transformExecutor.wallTimeTotal |
( |
|
self | ) |
|
Definition at line 436 of file trfExe.py.
436 def wallTimeTotal(self):
437 if self._preExeStart
and self._valStop:
◆ _alreadyInContainer
python.trfExe.transformExecutor._alreadyInContainer |
|
private |
◆ _athenaConcurrentEvents
python.trfExe.transformExecutor._athenaConcurrentEvents |
|
private |
◆ _athenaMP
python.trfExe.transformExecutor._athenaMP |
|
private |
◆ _athenaMT
python.trfExe.transformExecutor._athenaMT |
|
private |
◆ _containerSetup
python.trfExe.transformExecutor._containerSetup |
|
private |
◆ _dbMonitor
python.trfExe.transformExecutor._dbMonitor |
|
private |
◆ _errMsg
python.trfExe.transformExecutor._errMsg |
|
private |
◆ _eventCount
python.trfExe.transformExecutor._eventCount |
|
private |
◆ _exeStart
python.trfExe.transformExecutor._exeStart |
|
private |
◆ _exeStop
python.trfExe.transformExecutor._exeStop |
|
private |
◆ _extraMetadata
python.trfExe.transformExecutor._extraMetadata |
|
private |
◆ _hasExecuted
python.trfExe.transformExecutor._hasExecuted |
|
private |
◆ _hasValidated
python.trfExe.transformExecutor._hasValidated |
|
private |
◆ _inData
python.trfExe.transformExecutor._inData |
|
private |
◆ _isValidated
python.trfExe.transformExecutor._isValidated |
|
private |
◆ _memFullFile
python.trfExe.transformExecutor._memFullFile |
|
private |
◆ _memLeakResult
python.trfExe.transformExecutor._memLeakResult |
|
private |
◆ _memStats
python.trfExe.transformExecutor._memStats |
|
private |
◆ _myMerger
python.trfExe.transformExecutor._myMerger |
|
private |
◆ _name
python.trfExe.transformExecutor._name |
|
private |
◆ _outData
python.trfExe.transformExecutor._outData |
|
private |
◆ _preExeStart
python.trfExe.transformExecutor._preExeStart |
|
private |
- Note
- Place holders for resource consumption. CPU and walltime are available for all executors but currently only athena is instrumented to fill in memory stats (and then only if PerfMonSD is enabled).
Definition at line 185 of file trfExe.py.
◆ _rc
python.trfExe.transformExecutor._rc |
|
private |
◆ _resimevents
python.trfExe.transformExecutor._resimevents |
|
private |
◆ _trf
python.trfExe.transformExecutor._trf |
|
private |
◆ _validation
python.trfExe.transformExecutor._validation |
|
private |
◆ _valStart
python.trfExe.transformExecutor._valStart |
|
private |
◆ _valStop
python.trfExe.transformExecutor._valStop |
|
private |
◆ conf
python.trfExe.transformExecutor.conf |
Executor configuration:
- Note
- that if conf and trf are
None
then we'll probably set the conf up later (this is allowed and expected to be done once the master transform has figured out what it's doing for this job)
Definition at line 162 of file trfExe.py.
◆ inData
python.trfExe.transformExecutor.inData |
- Note
- Protect against _inData not yet being defined
-
Use normal setter
Definition at line 250 of file trfExe.py.
◆ outData
python.trfExe.transformExecutor.outData |
- Note
- Protect against _outData not yet being defined
-
Use normal setter
Definition at line 270 of file trfExe.py.
The documentation for this class was generated from the following file:
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.