83def printSnapshotsInfo():
84 if 'summary' not in data:
85 return
86 if 'snapshotLevel' not in data['summary']:
87 return
89 print(
'{0:^105}'.format(
'Snapshots Summary'))
91 print(
'{0:<14}{1:<13}{2:<13}{3:<13}{4:<13}{5:<13}{6:<13}{7:<13}'.format(
'Step',
92 'dCPU [s]',
93 'dWall [s]',
94 '<CPU>',
95 'dVmem [kB]',
96 'dRss [kB]',
97 'dPss [kB]',
98 'dSwap [kB]'))
100 for entry in ['Configure', 'Initialize', 'FirstEvent', 'Execute', 'Finalize']:
101 print(
'{0:<14}{1:<13.2f}{2:<13.2f}{3:<13.2f}{4:<13}{5:<13}{6:<13}{7:<13}'.format(entry,
102 data['summary']['snapshotLevel'][entry]['dCPU']*0.001,
103 data['summary']['snapshotLevel'][entry]['dWall']*0.001,
104 data['summary']['snapshotLevel'][entry]['cpuUtil'],
105 data['summary']['snapshotLevel'][entry]['dVmem'],
106 data['summary']['snapshotLevel'][entry]['dRss'],
107 data['summary']['snapshotLevel'][entry]['dPss'],
108 data['summary']['snapshotLevel'][entry]['dSwap']))
110 print(
'{0:<40}{1:<}'.format(
'Number of events processed:',
111 data['summary']['nEvents']))
112 nEvents = float(data['summary']['nEvents'])
113 cpuExec = float(data['summary']['snapshotLevel']['FirstEvent']['dCPU']) + float(data['summary']['snapshotLevel']['Execute']['dCPU'])
114 wallExec = float(data['summary']['snapshotLevel']['FirstEvent']['dWall']) + float(data['summary']['snapshotLevel']['Execute']['dWall'])
115 print(
'{0:<40}{1:<.0f}'.format(
'CPU usage per event [ms]:', cpuExec/nEvents))
116 print(
'{0:<40}{1:<.3f}'.format(
'Events per second:', nEvents/wallExec*1000.))
117 print(
'{0:<40}{1:<}'.format(
'CPU utilization efficiency [%]:', data[
'summary'][
'misc'][
'cpuUtilEff']))
119 print(
'{0:<40}{1:<.2f} GB'.format(
'Max Vmem:',
120 float(data['summary']['peaks']['vmemPeak'])/1024./1024.))
121 print(
'{0:<40}{1:<.2f} GB'.format(
'Max Rss:',
122 float(data['summary']['peaks']['rssPeak'])/1024./1024))
123 print(
'{0:<40}{1:<.2f} GB'.format(
'Max Pss:',
124 float(data['summary']['peaks']['pssPeak'])/1024./1024.))
126 print(
'{0:<40}{1:<.2f} MB'.format(
'Leak estimate per event Vmem:',
127 float(data['summary']['leakEstimates']['vmemLeak'])/1024.))
128 print(
'{0:<40}{1:<.2f} MB'.format(
'Leak estimate per event Pss:',
129 float(data['summary']['leakEstimates']['pssLeak'])/1024.))
130 print(
' >> Estimated using the last {0} measurements from the Event Level Monitoring'.format(data[
'summary'][
'leakEstimates'][
'nPoints']))
131 print(
' >> Events prior to the first 25 are omitted...')
132
133