Public Member Functions | |
def | __init__ (self) |
def | apply (self, process, accelerators) |
def | dumpPython |
def | dumpPythonImpl (self, options) |
def | enabledLabels (self) |
def | labels (self) |
def | moduleTypeResolver (self, accelerators) |
def | type_ (self) |
Private Member Functions | |
def | _place (self, name, proc) |
A class used to specify possible compute accelerators in a Process instance. It is intended to be derived for any accelerator/portability technology, and provides hooks such that a specific customization can be applied to the Process on a worker node at the point where the python configuration is serialized for C++. The customization must not change the configuration hash. To enforce this reuirement, the customization gets a ProcessForProcessAccelerator wrapper that gives access to only those parts of the configuration that can be changed. Nevertheless it would be good to have specific unit test for each deriving class to ensure that all combinations of the enabled accelerators give the same configuration hash. The deriving class must do its checks for hardware availability only in enabledLabels(), and possibly in apply() if any further fine-tuning is needed, because those two are the only functions that are guaranteed to be called at the worker node.
def Config.ProcessAccelerator.__init__ | ( | self | ) |
Definition at line 2004 of file Config.py.
|
private |
def Config.ProcessAccelerator.apply | ( | self, | |
process, | |||
accelerators | |||
) |
Override if need to customize the Process at worker node. The selected available accelerator labels are given in the 'accelerators' argument (the patterns, e.g. '*' have been expanded to concrete labels). This function may touch only untracked parameters.
Definition at line 2047 of file Config.py.
Referenced by heavyIonTools.ConfigureHeavyIons.__call__(), coreTools.RunOnData.__call__(), trackTools.MakeAODTrackCandidates.__call__(), runJetUncertainties.RunJetUncertainties.__call__(), metTools.AddMETCollection.__call__(), heavyIonTools.ProductionDefaults.__call__(), cmsswVersionTools.PickRelValInputFiles.__call__(), coreTools.RemoveMCMatching.__call__(), trackTools.MakePATTrackCandidates.__call__(), trigTools.SwitchOnTrigger.__call__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__call__(), heavyIonTools.SelectionDefaults.__call__(), heavyIonTools.DisbaleMonteCarloDeps.__call__(), trigTools.SwitchOnTriggerStandAlone.__call__(), tauTools.AddTauCollection.__call__(), trackTools.MakeTrackCandidates.__call__(), trigTools.SwitchOnTriggerMatching.__call__(), trigTools.SwitchOnTriggerMatchingStandAlone.__call__(), trigTools.SwitchOnTriggerMatchEmbedding.__call__(), jetTools.AddJetCollection.__call__(), jetTools.SwitchJetCollection.__call__(), jetTools.UpdateJetCollection.__call__(), jetTools.AddJetID.__call__(), and jetTools.SetTagInfos.__call__().
def Config.ProcessAccelerator.dumpPython | ( | self, | |
options | |||
) |
Definition at line 2010 of file Config.py.
References __class__< T >.__class__(), and Config.ProcessAccelerator.dumpPythonImpl().
Referenced by Modules.SwitchProducer.__addParameter(), Types._AllowedParameterTypes.__init__(), Mixins._ParameterTypeBase.__repr__(), Mixins._Parameterizable.__repr__(), Mixins._ValidatingParameterListBase.__repr__(), Types.VPSet.__repr__(), Mixins._Parameterizable.__setattr__(), Modules.SwitchProducer.__setattr__(), and SequenceTypes.Schedule.__str__().
def Config.ProcessAccelerator.dumpPythonImpl | ( | self, | |
options, | |||
str | |||
) |
Override if need to add any 'body' content to dumpPython(). Returns a string.
Definition at line 2022 of file Config.py.
Referenced by Config.ProcessAccelerator.dumpPython().
def Config.ProcessAccelerator.enabledLabels | ( | self | ) |
Override to return a list of strings for the accelerator labels that are enabled in the system the job is being run on.
def Config.ProcessAccelerator.labels | ( | self | ) |
Override to return a list of strings for the accelerator labels.
Definition at line 2025 of file Config.py.
Referenced by ProcessAcceleratorCUDA.ProcessAcceleratorCUDA.enabledLabels(), and ProcessAcceleratorROCm.ProcessAcceleratorROCm.enabledLabels().
def Config.ProcessAccelerator.moduleTypeResolver | ( | self, | |
accelerators | |||
) |
Override to return an object that implements "module type resolver" in python. The object should have the following methods - __init__(self, accelerators) * accelerators = list of selected accelerators - plugin(self): * should return a string for the type resolver plugin name - setModuleVariant(self, module): * Called for each ED and ES module. Should act only if module.type_() contains the magic identifier At most one of the ProcessAccelerators in a job can return a non-None object
Definition at line 2032 of file Config.py.
def Config.ProcessAccelerator.type_ | ( | self | ) |
Definition at line 2008 of file Config.py.
Referenced by Modules.Service.__str__(), Modules.Service._placeImpl(), Modules.ESSource._placeImpl(), Modules.ESProducer._placeImpl(), Modules.ESPrefer.copy(), Mixins._TypedParameterizable.dumpPython(), Modules.ESPrefer.dumpPythonAs(), Modules.Service.dumpSequencePython(), RandomRunSource.RandomRunSource.insertInto(), Modules.Service.insertInto(), ExternalGeneratorFilter.ExternalGeneratorFilter.insertInto(), Mixins._TypedParameterizable.insertInto(), Modules.ESSource.moduleLabel_(), Modules.ESProducer.moduleLabel_(), Modules.ESSource.nameInProcessDesc_(), Modules.ESProducer.nameInProcessDesc_(), and Modules.ESPrefer.nameInProcessDesc_().