def getModelsAnalysisResults(self, rPath): chartNames = [ 'cpu utilization', 'mem read', 'mem write', 'io read', 'io write', 'net read', 'net write', 'cpu power', 'mem power' ] modelNames = ['cpu model', 'mem model', 'disk model', 'net model'] modelSummary = ['cpu model', 'mem model', 'disk model', 'net model'] modelMetrics = [['CPI', 'stalled-cycles-frontend(frontend cycles idle %)'], \ ['cache-misses(% of all cache refs )', 'DTLB store MPI'], \ ['IO_bandwidth_disk_or_network_reads(M/s)'], \ ['IO_bandwidth_disk_or_network_reads(M/s)']] manager = ResultManager() rawDatas, rawUsages = manager.queryAppModelResult(rPath) datas = [] count = 0 for items in rawDatas: tmpList = [] for item in items: tmpList.append([chartNames[count], item]) count += 1 datas.append(tmpList) max = -1 modelIndex = -1 for i in range(len(rawUsages)): if max < rawUsages[i]: max = rawUsages[i] modelIndex = i modelName = modelNames[modelIndex] datas.append(modelName) datas.append(modelSummary[modelIndex]) metrics = manager.queryResultsByNames(rPath, modelMetrics[modelIndex]) datas.append(metrics) return datas
def getOverviewResults(self, rPaths): tables = [('application performance',[], 0),('micro-arch performance',['CPI', 'cache-misses(% of all cache refs )', 'branch-misses(of all branches %)', 'mem Page Hits vs. all requests'], 0),('os level performance',['cswch/s','INTR_sum_intr/s','tps','IFACE_lo_rxkB/s','IFACE_lo_txkB/s','IFACE_eth0_rxkB/s','IFACE_eth0_txkB/s','IFACE_eth1_rxkB/s','IFACE_eth1_txkB/s'], 0),('application hotspots', [0,1,2,3,4], 1, 'hotspots')] #init results = [] for table in tables: tableName = table[0] tableItems = table[1] tmpDatas = [] for item in tableItems: tmpDatas.append([]) results.append((tableName, tmpDatas)) #fetch datas for path in rPaths: manager = ResultManager() for i in range(len(tables)): table = tables[i] tableName = table[0] tableItems = table[1] type = table[2] rawTableName = None itemsResults = None if type == 1: rawTableName = table[3] itemsResults = manager.queryResultsByIndexes(path, rawTableName, tableItems) else: itemsResults = manager.queryResultsByNames(path, tableItems) for j in range(len(itemsResults)): if not results[i][1][j]: results[i][1][j].append(itemsResults[j][0]) results[i][1][j].append(itemsResults[j][1]) return results
def getModelsAnalysisResults(self, rPath): chartNames = ['cpu utilization', 'mem read', 'mem write', 'io read', 'io write', 'net read', 'net write', 'cpu power', 'mem power'] modelNames = ['cpu model', 'mem model', 'disk model', 'net model'] modelSummary = ['cpu model', 'mem model', 'disk model', 'net model'] modelMetrics = [['CPI', 'stalled-cycles-frontend(frontend cycles idle %)'], \ ['cache-misses(% of all cache refs )', 'DTLB store MPI'], \ ['IO_bandwidth_disk_or_network_reads(M/s)'], \ ['IO_bandwidth_disk_or_network_reads(M/s)']] manager = ResultManager() rawDatas, rawUsages = manager.queryAppModelResult(rPath) datas = [] count = 0 for items in rawDatas: tmpList = [] for item in items: tmpList.append([chartNames[count], item]) count += 1 datas.append(tmpList) max = -1 modelIndex = -1 for i in range(len(rawUsages)): if max<rawUsages[i]: max = rawUsages[i] modelIndex = i modelName = modelNames[modelIndex] datas.append(modelName) datas.append(modelSummary[modelIndex]) metrics = manager.queryResultsByNames(rPath, modelMetrics[modelIndex]) datas.append(metrics) return datas
def getSingleResultOverview(self, rPath): items = [ 'cache-misses(% of all cache refs )', 'branch-misses(of all branches %)', 'task-clock(CPUs utilized )', 'LLC-misses(of all LL-cache hits %)', 'CPI', 'L1-dcache-misses(of all L1-dcache hits %)' ] manager = ResultManager() datas = manager.queryResultsByNames(rPath, items) return datas
def getAnalysisResult(self, rPaths, metrics=None, formula=None): datas = [] manager = ResultManager() for rPath in rPaths: if formula: value = manager.queryResultByFormula(rPath, formula, metrics) else: value = manager.queryResultsByNames(rPath, metrics)[0][1] datas.append(value) return datas
def getAnalysisResult(self, rPaths, metrics=None, formula=None): datas = [] manager = ResultManager() for rPath in rPaths: if formula: value = manager.queryResultByFormula(rPath, formula, metrics) else: value = manager.queryResultsByNames(rPath, metrics)[0][1] datas.append(value) return datas
def getOverviewResults(self, rPaths): tables = [('application performance', [], 0), ('micro-arch performance', [ 'CPI', 'cache-misses(% of all cache refs )', 'branch-misses(of all branches %)', 'mem Page Hits vs. all requests' ], 0), ('os level performance', [ 'cswch/s', 'INTR_sum_intr/s', 'tps', 'IFACE_lo_rxkB/s', 'IFACE_lo_txkB/s', 'IFACE_eth0_rxkB/s', 'IFACE_eth0_txkB/s', 'IFACE_eth1_rxkB/s', 'IFACE_eth1_txkB/s' ], 0), ('application hotspots', [0, 1, 2, 3, 4], 1, 'hotspots')] #init results = [] for table in tables: tableName = table[0] tableItems = table[1] tmpDatas = [] for item in tableItems: tmpDatas.append([]) results.append((tableName, tmpDatas)) #fetch datas for path in rPaths: manager = ResultManager() for i in range(len(tables)): table = tables[i] tableName = table[0] tableItems = table[1] type = table[2] rawTableName = None itemsResults = None if type == 1: rawTableName = table[3] itemsResults = manager.queryResultsByIndexes( path, rawTableName, tableItems) else: itemsResults = manager.queryResultsByNames( path, tableItems) for j in range(len(itemsResults)): if not results[i][1][j]: results[i][1][j].append(itemsResults[j][0]) results[i][1][j].append(itemsResults[j][1]) return results
def getSingleResultOverview(self, rPath): items = ['cache-misses(% of all cache refs )', 'branch-misses(of all branches %)', 'task-clock(CPUs utilized )', 'LLC-misses(of all LL-cache hits %)', 'CPI', 'L1-dcache-misses(of all L1-dcache hits %)'] manager = ResultManager() datas = manager.queryResultsByNames(rPath, items) return datas