|
Gaudi Framework, version v21r6 |
| Home | Generated: 11 Nov 2009 |
Definition at line 8 of file Main.py.
Public Member Functions | |
| def | __init__ |
| def | generatePyOutput |
| def | generateOptsOutput |
| def | printconfig |
| def | writeconfig |
| def | printsequence |
| def | run |
| Instantiate and run the application. | |
| def | runSerial |
| def | runParallel |
Public Attributes | |
| g | |
Private Member Functions | |
| def | _writepickle |
| def Gaudi::Main::gaudimain::__init__ | ( | self | ) |
Definition at line 9 of file Main.py.
00009 : 00010 from Configurables import ApplicationMgr 00011 appMgr = ApplicationMgr() 00012 if "GAUDIAPPNAME" in os.environ: 00013 appMgr.AppName = str(os.environ["GAUDIAPPNAME"]) 00014 if "GAUDIAPPVERSION" in os.environ: 00015 appMgr.AppVersion = str(os.environ["GAUDIAPPVERSION"]) 00016 def generatePyOutput(self, all = False):
| def Gaudi::Main::gaudimain::generatePyOutput | ( | self, | ||
all = False | ||||
| ) |
| def Gaudi::Main::gaudimain::generateOptsOutput | ( | self, | ||
all = False | ||||
| ) |
Definition at line 22 of file Main.py.
00022 : 00023 from pprint import pformat 00024 conf_dict = Configuration.configurationDict(all) 00025 out = [] 00026 names = conf_dict.keys() 00027 names.sort() 00028 for n in names: 00029 props = conf_dict[n].keys() 00030 props.sort() 00031 for p in props: 00032 out.append('%s.%s = %s;' % (n,p, repr(conf_dict[n][p]))) 00033 return "\n".join(out) 00034 def _writepickle(self, filename) :
| def Gaudi::Main::gaudimain::_writepickle | ( | self, | ||
| filename | ||||
| ) | [private] |
Definition at line 35 of file Main.py.
00035 : 00036 #--- Lets take the first file input file as the name of the pickle file 00037 import pickle 00038 output = open(filename, 'wb') 00039 # Dump only the the configurables that make sense to dump (not User ones) 00040 from GaudiKernel.Proxy.Configurable import getNeededConfigurables 00041 to_dump = {} 00042 for n in getNeededConfigurables(): 00043 to_dump[n] = Configuration.allConfigurables[n] 00044 pickle.dump(to_dump, output, -1) 00045 output.close() 00046 def printconfig(self, old_format = False, all = False) :
| def Gaudi::Main::gaudimain::printconfig | ( | self, | ||
old_format = False, |
||||
all = False | ||||
| ) |
Definition at line 47 of file Main.py.
00047 : 00048 msg = 'Dumping all configurables and properties' 00049 if not all: 00050 msg += ' (different from default)' 00051 log.info(msg) 00052 conf_dict = Configuration.configurationDict(all) 00053 if old_format: 00054 print self.generateOptsOutput(all) 00055 else: 00056 print self.generatePyOutput(all) 00057 def writeconfig(self, filename, all = False):
| def Gaudi::Main::gaudimain::writeconfig | ( | self, | ||
| filename, | ||||
all = False | ||||
| ) |
Definition at line 58 of file Main.py.
00058 : 00059 write = { ".pkl" : lambda filename, all: self._writepickle(filename), 00060 ".py" : lambda filename, all: open(filename,"w").write(self.generatePyOutput(all) + "\n"), 00061 ".opts": lambda filename, all: open(filename,"w").write(self.generateOptsOutput(all) + "\n"), 00062 } 00063 from os.path import splitext 00064 ext = splitext(filename)[1] 00065 if ext in write: 00066 write[ext](filename, all) 00067 else: 00068 log.error("Unknown file type '%s'. Must be any of %r.", ext, write.keys()) 00069 sys.exit(1) 00070 def printsequence(self):
| def Gaudi::Main::gaudimain::printsequence | ( | self | ) |
Definition at line 71 of file Main.py.
00071 : 00072 def printAlgo( algName, appMgr, prefix = ' ') : 00073 print prefix + algName 00074 alg = appMgr.algorithm( algName.split( "/" )[ -1 ] ) 00075 prop = alg.properties() 00076 if prop.has_key( "Members" ) : 00077 subs = prop[ "Members" ].value() 00078 for i in subs : printAlgo( i.strip( '"' ), appMgr, prefix + " " ) 00079 elif prop.has_key( "DetectorList" ) : 00080 subs = prop[ "DetectorList" ].value() 00081 for i in subs : printAlgo( algName.split( "/" )[ -1 ] + i.strip( '"' ) + "Seq", appMgr, prefix + " ") 00082 import GaudiPython 00083 self.g = GaudiPython.AppMgr() 00084 mp = self.g.properties() 00085 print "\n ****************************** Algorithm Sequence **************************** \n" 00086 for i in mp["TopAlg"].value(): printAlgo( i, self.g ) 00087 print "\n ****************************************************************************** \n" 00088 ## Instantiate and run the application.
| def Gaudi::Main::gaudimain::run | ( | self, | ||
ncpus = None | ||||
| ) |
Instantiate and run the application.
Depending on the number of CPUs (ncpus) specified, it start
Definition at line 91 of file Main.py.
00091 : 00092 if not ncpus: 00093 # Standard sequential mode 00094 result = self.runSerial() 00095 else: 00096 # Doing the checking here because it is not done in runParallel 00097 ncpus = int(ncpus) 00098 assert(ncpus > 0) 00099 # Parallel mode 00100 result = self.runParallel(ncpus) 00101 return result 00102 def runSerial(self) :
| def Gaudi::Main::gaudimain::runSerial | ( | self | ) |
Definition at line 103 of file Main.py.
00103 : 00104 #--- Instantiate the ApplicationMgr------------------------------ 00105 import GaudiPython 00106 log.debug('-'*80) 00107 log.debug('%s: running in serial mode', __name__) 00108 log.debug('-'*80) 00109 sysStart = time() 00110 self.g = GaudiPython.AppMgr() 00111 success = self.g.run(self.g.EvtMax).isSuccess() 00112 success = self.g.exit().isSuccess() and success 00113 if not success: 00114 return 1 00115 sysTime = time()-sysStart 00116 log.debug('-'*80) 00117 log.debug('%s: serial system finished, time taken: %5.4fs', __name__, sysTime) 00118 log.debug('-'*80) 00119 return 0 00120 def runParallel(self, ncpus) :
| def Gaudi::Main::gaudimain::runParallel | ( | self, | ||
| ncpus | ||||
| ) |
Definition at line 121 of file Main.py.
00121 : 00122 from Gaudi.Configuration import Configurable 00123 import GaudiPython.Parallel as gpp 00124 c = Configurable.allConfigurables 00125 log.info('-'*80) 00126 log.info('%s: running in parallel mode', __name__) 00127 log.info('-'*80) 00128 sysStart = time() 00129 sc = gpp.setupSystem(ncpus, c) 00130 if not sc: 00131 return 1 00132 sysTime = time()-sysStart 00133 log.info('-'*80) 00134 log.info('%s: parallel system finished, time taken: %5.4fs', __name__, sysTime) 00135 log.info('-'*80) 00136 return 0 return 0