CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions
Config.ProcessAccelerator Class Reference
Inheritance diagram for Config.ProcessAccelerator:
Config.ProcessAcceleratorTest Config.ProcessAcceleratorTest2

Public Member Functions

def __init__
 
def apply
 
def dumpPython
 
def dumpPythonImpl
 
def enabledLabels
 
def labels
 
def type_
 

Private Member Functions

def _place
 

Detailed Description

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.

Definition at line 1880 of file Config.py.

Constructor & Destructor Documentation

def Config.ProcessAccelerator.__init__ (   self)

Definition at line 1895 of file Config.py.

1896  def __init__(self):
pass

Member Function Documentation

def Config.ProcessAccelerator._place (   self,
  name,
  proc 
)
private

Definition at line 1897 of file Config.py.

1898  def _place(self, name, proc):
proc._placeAccelerator(self.type_(), self)
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 1923 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__().

1924  def apply(self, process, accelerators):
1925  """Override if need to customize the Process at worker node. The
1926  selected available accelerator labels are given in the
1927  'accelerators' argument (the patterns, e.g. '*' have been
1928  expanded to concrete labels).
1929 
1930  This function may touch only untracked parameters.
1931  """
1932  pass
def Config.ProcessAccelerator.dumpPython (   self,
  options = PrintOptions() 
)

Definition at line 1901 of file Config.py.

References 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__().

1902  def dumpPython(self, options=PrintOptions()):
1903  specialImportRegistry.registerUse(self)
1904  result = self.__class__.__name__+"(" # not including cms. since the deriving classes are not in cms "namespace"
1905  options.indent()
1906  res = self.dumpPythonImpl(options)
1907  options.unindent()
1908  if len(res) > 0:
1909  result += "\n"+res+"\n"
1910  result += ")\n"
1911  return result
def Config.ProcessAccelerator.dumpPythonImpl (   self,
  options 
)
Override if need to add any 'body' content to dumpPython(). Returns a string.

Definition at line 1913 of file Config.py.

Referenced by Config.ProcessAccelerator.dumpPython().

1914  def dumpPythonImpl(self, options):
1915  """Override if need to add any 'body' content to dumpPython(). Returns a string."""
return ""
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.

Definition at line 1919 of file Config.py.

1920  def enabledLabels(self):
1921  """Override to return a list of strings for the accelerator labels
1922  that are enabled in the system the job is being run on."""
return []
def Config.ProcessAccelerator.labels (   self)
Override to return a list of strings for the accelerator labels.

Definition at line 1916 of file Config.py.

Referenced by ProcessAcceleratorCUDA.ProcessAcceleratorCUDA.enabledLabels().

1917  def labels(self):
1918  """Override to return a list of strings for the accelerator labels."""
return []
def Config.ProcessAccelerator.type_ (   self)

Definition at line 1899 of file Config.py.

Referenced by Modules.Service.__str__(), Config.ProcessAccelerator._place(), 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_().

1900  def type_(self):
return type(self).__name__