Public Member Functions | |
def | __init__ (self, path) |
def | findLineAfter (self, line_index, lines, test_condition, return_index=False) |
def | findLineBefore (self, line_index, lines, test_condition) |
def | firstTimeStampAfter (self, line_index, lines) |
def | firstTimeStampBefore (self, line_index, lines) |
def | get_tarball_fromlog (self) |
def | getMachineInfo (self) |
def | handleParsingError (self, message) |
def | parseAll (self) |
def | parseAllOtherTests (self) |
def | parseGeneralInfo (self) |
def | parseTheCompletion (self) |
def | parseTimeSize (self) |
def | readCmsScimark (self, main_cores=[1]) |
def | readCmsScimarkTest (self, testName, testType, core) |
def | readInput (self, path, fileName="cmsPerfSuite.log") |
def | validateSteps (self, steps) |
Static Public Member Functions | |
def | findFirstIndex_ofStartsWith (job_lines, start_of_line) |
def | isTimeStamp (line) |
Public Attributes | |
lines_general | |
lines_other | |
lines_timesize | |
missing_fields | |
reCmsScimarkTest | |
Private Member Functions | |
def | _applyParsingRules (self, parsing_rules, lines) |
Private Attributes | |
_DEBUG | |
_MAX_STEPS | |
_otherStart | |
_path | |
_timeSizeEnd | |
_timeSizeStart | |
Static Private Attributes | |
_LINE_SEPARATOR | |
The whole parsing works as following. We split the file into 3 parts (we keep 3 variables of line lists:self.lines_general, self.lines_timesize, self.lines_other ): * General info As most of the info are simple one line strings, we define some regular expressions defining and matching each of those lines. The regular expressions are associated with data which we can get from them. e.g. ^Suite started at (.+) on (.+) by user (.+)$ would match only the line defining the time suite started and on which machine. It's associated with tuple of field names for general info which will be filled in. in this way we get info = {'start_time': start-taken-from-regexp, 'host': host, 'user': user}. This is done by calling simple function _applyParsingRules which checks each lines with each if one passes another, if it does fills in the result dictionary with the result. Additionaly we get the cpu and memmory info from /proc/cpuinfo /proc/meminfo * TimeSize test We use the same technique a little bit also. But at first we divide the timesize lines by job (individual run of cmssw - per candle, and pileup/not). Then for each of the jobs we apply our parsing rules, also we find the starting and ending times (i.e. We know that start timestamp is somethere after certain line containing "Written out cmsRelvalreport.py input file at:") * All other tests We find the stating that the test is being launched (containing the test name, core and num events). Above we have the thread number, and below the starting time. The ending time can be ONLY connected with the starting time by the Thread-ID. The problem is that the file names different the same test instance like <Launching "PILE UP Memcheck"> and <"Memcheck" stopped>.
Definition at line 11 of file parserPerfsuiteMetadata.py.
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.__init__ | ( | self, | |
path | |||
) |
Definition at line 31 of file parserPerfsuiteMetadata.py.
|
private |
Applies the (provided) regular expression rules (=rule[1] for rule in parsing_rules) to each line and if it matches the line, puts the mached information to the dictionary as the specified keys (=rule[0]) which is later returned Rule[3] contains whether the field is required to be found. If so and it isn't found the exception would be raised. rules = [ ( (field_name_1_to_match, field_name_2), regular expression, /optionaly: is the field required? if so "req"/ ) ]
we call a shared parsing helper
Definition at line 238 of file parserPerfsuiteMetadata.py.
References parsingRulesHelper.rulesParser().
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAllOtherTests(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseGeneralInfo(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTheCompletion(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTimeSize().
|
static |
Definition at line 116 of file parserPerfsuiteMetadata.py.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAllOtherTests(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseGeneralInfo(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTimeSize().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.findLineAfter | ( | self, | |
line_index, | |||
lines, | |||
test_condition, | |||
return_index = False |
|||
) |
finds a line satisfying the `test_condition` comming after the `line_index`
Definition at line 132 of file parserPerfsuiteMetadata.py.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.firstTimeStampAfter(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAllOtherTests(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTimeSize().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.findLineBefore | ( | self, | |
line_index, | |||
lines, | |||
test_condition | |||
) |
finds a line satisfying the `test_condition` comming before the `line_index`
Definition at line 121 of file parserPerfsuiteMetadata.py.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.firstTimeStampBefore(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAllOtherTests().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.firstTimeStampAfter | ( | self, | |
line_index, | |||
lines | |||
) |
returns the first timestamp AFTER the line with given index
Definition at line 148 of file parserPerfsuiteMetadata.py.
References parserPerfsuiteMetadata.parserPerfsuiteMetadata.findLineAfter(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.isTimeStamp().
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAllOtherTests(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTimeSize().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.firstTimeStampBefore | ( | self, | |
line_index, | |||
lines | |||
) |
returns the first timestamp BEFORE the line with given index
Definition at line 143 of file parserPerfsuiteMetadata.py.
References parserPerfsuiteMetadata.parserPerfsuiteMetadata.findLineBefore(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.isTimeStamp().
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAllOtherTests(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTimeSize().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.get_tarball_fromlog | ( | self | ) |
Return the tarball castor location by parsing the cmsPerfSuite.log file
Definition at line 710 of file parserPerfsuiteMetadata.py.
References edm.print().
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTheCompletion().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.getMachineInfo | ( | self | ) |
Returns the cpu and memory info
cpu info
we assume that: * num_cores = max(core id+1) [it's counted from 0] * 'model name' is processor type [we will return only the first one - we assume others to be same!!?? * cpu MHz - is the speed of CPU
for model name : Intel(R) Core(TM)2 Duo CPU L9400 @ 1.86GHz cpu MHz : 800.000 cache size : 6144 KB
Definition at line 178 of file parserPerfsuiteMetadata.py.
References HIPplots._path, parserPerfsuiteMetadata.parserPerfsuiteMetadata._path, CommonAnalyzer._path, ConfigToolBase.ConfigToolBase._path, createfilelist.int, edm.print(), split, and digitizers_cfi.strip.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAll().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.handleParsingError | ( | self, | |
message | |||
) |
Definition at line 153 of file parserPerfsuiteMetadata.py.
References parserPerfsuiteMetadata.parserPerfsuiteMetadata._DEBUG, and edm.print().
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAll(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAllOtherTests(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTheCompletion(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTimeSize().
|
static |
Returns whether the string is a timestamp (if not returns None) >>> parserPerfsuiteMetadata.isTimeStamp("Fri Aug 14 01:16:03 2009") True >>> parserPerfsuiteMetadata.isTimeStamp("Fri Augx 14 01:16:03 2009")
Definition at line 99 of file parserPerfsuiteMetadata.py.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.firstTimeStampAfter(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.firstTimeStampBefore(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAllOtherTests(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTimeSize().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAll | ( | self | ) |
Definition at line 725 of file parserPerfsuiteMetadata.py.
References reco.get(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.getMachineInfo(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.handleParsingError(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.lines_timesize, parserPerfsuiteMetadata.parserPerfsuiteMetadata.missing_fields, parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAllOtherTests(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseGeneralInfo(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTheCompletion(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTimeSize(), edm.print(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.readCmsScimark(), str, and update.
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAllOtherTests | ( | self | ) |
Definition at line 363 of file parserPerfsuiteMetadata.py.
References parserPerfsuiteMetadata.parserPerfsuiteMetadata._applyParsingRules(), mps_setup.append, parserPerfsuiteMetadata.parserPerfsuiteMetadata.findFirstIndex_ofStartsWith(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.findLineAfter(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.findLineBefore(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.firstTimeStampAfter(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.firstTimeStampBefore(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.handleParsingError(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.isTimeStamp(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.lines_other, edm.print(), split, str, update, and parserPerfsuiteMetadata.parserPerfsuiteMetadata.validateSteps().
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAll().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseGeneralInfo | ( | self | ) |
Definition at line 258 of file parserPerfsuiteMetadata.py.
References parserPerfsuiteMetadata.parserPerfsuiteMetadata._applyParsingRules(), parserPerfsuiteMetadata.parserPerfsuiteMetadata._DEBUG, parserPerfsuiteMetadata.parserPerfsuiteMetadata.findFirstIndex_ofStartsWith(), join(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.lines_general, and edm.print().
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAll().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTheCompletion | ( | self | ) |
checks if the suite has successfully finished and if the tarball was successfully archived and uploaded to the castor
Definition at line 657 of file parserPerfsuiteMetadata.py.
References parserPerfsuiteMetadata.parserPerfsuiteMetadata._applyParsingRules(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.get_tarball_fromlog(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.handleParsingError(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.lines_other, and edm.print().
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAll().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTimeSize | ( | self | ) |
parses the timeSize
Definition at line 496 of file parserPerfsuiteMetadata.py.
References parserPerfsuiteMetadata.parserPerfsuiteMetadata._applyParsingRules(), parserPerfsuiteMetadata.parserPerfsuiteMetadata._DEBUG, parserPerfsuiteMetadata.parserPerfsuiteMetadata.findFirstIndex_ofStartsWith(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.findLineAfter(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.firstTimeStampAfter(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.firstTimeStampBefore(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.handleParsingError(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.isTimeStamp(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.lines_timesize, edm.print(), split, str, and parserPerfsuiteMetadata.parserPerfsuiteMetadata.validateSteps().
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAll().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.readCmsScimark | ( | self, | |
main_cores = [1] |
|||
) |
Definition at line 632 of file parserPerfsuiteMetadata.py.
References parserPerfsuiteMetadata.parserPerfsuiteMetadata._DEBUG, HIPplots._path, parserPerfsuiteMetadata.parserPerfsuiteMetadata._path, ConfigToolBase.ConfigToolBase._path, CommonAnalyzer._path, edm.print(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.readCmsScimarkTest(), and str.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAll().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.readCmsScimarkTest | ( | self, | |
testName, | |||
testType, | |||
core | |||
) |
Definition at line 620 of file parserPerfsuiteMetadata.py.
References HIPplots._path, parserPerfsuiteMetadata.parserPerfsuiteMetadata._path, ConfigToolBase.ConfigToolBase._path, CommonAnalyzer._path, pat::helper::OverlapTest.readInput(), EcalFEtoDigi.readInput(), pat::helper::BasicOverlapTest.readInput(), pat::helper::OverlapBySuperClusterSeed.readInput(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.readInput().
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.readCmsScimark().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.readInput | ( | self, | |
path, | |||
fileName = "cmsPerfSuite.log" |
|||
) |
Definition at line 164 of file parserPerfsuiteMetadata.py.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.readCmsScimarkTest().
def parserPerfsuiteMetadata.parserPerfsuiteMetadata.validateSteps | ( | self, | |
steps | |||
) |
Simple function for error detection. TODO: we could use a list of possible steps also
Definition at line 27 of file parserPerfsuiteMetadata.py.
References parserPerfsuiteMetadata.parserPerfsuiteMetadata._MAX_STEPS.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAllOtherTests(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTimeSize().
|
private |
Definition at line 34 of file parserPerfsuiteMetadata.py.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.handleParsingError(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseGeneralInfo(), parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTimeSize(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.readCmsScimark().
|
staticprivate |
Definition at line 26 of file parserPerfsuiteMetadata.py.
|
private |
Definition at line 33 of file parserPerfsuiteMetadata.py.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.validateSteps().
|
private |
Definition at line 53 of file parserPerfsuiteMetadata.py.
|
private |
|
private |
Definition at line 50 of file parserPerfsuiteMetadata.py.
|
private |
Definition at line 45 of file parserPerfsuiteMetadata.py.
parserPerfsuiteMetadata.parserPerfsuiteMetadata.lines_general |
Definition at line 91 of file parserPerfsuiteMetadata.py.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseGeneralInfo().
parserPerfsuiteMetadata.parserPerfsuiteMetadata.lines_other |
Definition at line 93 of file parserPerfsuiteMetadata.py.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAllOtherTests(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTheCompletion().
parserPerfsuiteMetadata.parserPerfsuiteMetadata.lines_timesize |
Definition at line 92 of file parserPerfsuiteMetadata.py.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAll(), and parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseTimeSize().
parserPerfsuiteMetadata.parserPerfsuiteMetadata.missing_fields |
Definition at line 96 of file parserPerfsuiteMetadata.py.
Referenced by parserPerfsuiteMetadata.parserPerfsuiteMetadata.parseAll().
parserPerfsuiteMetadata.parserPerfsuiteMetadata.reCmsScimarkTest |
Definition at line 41 of file parserPerfsuiteMetadata.py.