Some updates
This commit is contained in:
parent
4ead55026d
commit
119bc9d8f9
@ -3,7 +3,7 @@ import re
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
class Stat(Enum):
|
class Stat(Enum):
|
||||||
CPU = 'cpu'
|
PLATFORM = 'platform'
|
||||||
|
|
||||||
THREADS = 'threads'
|
THREADS = 'threads'
|
||||||
ITERATIONS = 'iterations'
|
ITERATIONS = 'iterations'
|
||||||
@ -21,9 +21,13 @@ class Stat(Enum):
|
|||||||
POWER_BEFORE = 'power before'
|
POWER_BEFORE = 'power before'
|
||||||
POWER = 'power'
|
POWER = 'power'
|
||||||
POWER_AFTER = 'power after'
|
POWER_AFTER = 'power after'
|
||||||
|
TIME_S_OVERALL = 'time (sec) overall'
|
||||||
TIME_S = 'time (sec)'
|
TIME_S = 'time (sec)'
|
||||||
DELTA_WATT = 'Δ watt'
|
JOULES_OVERALL = 'joules overall'
|
||||||
JOULES = 'joules'
|
JOULES = 'joules'
|
||||||
|
WATTS_OVERALL = 'wattage overall'
|
||||||
|
WATTS = 'wattage'
|
||||||
|
DELTA_WATT = 'Δ watt'
|
||||||
|
|
||||||
TASK_CLK = 'task clock (msec)'
|
TASK_CLK = 'task clock (msec)'
|
||||||
PAGE_FAULTS = 'page faults'
|
PAGE_FAULTS = 'page faults'
|
||||||
|
@ -178,6 +178,7 @@ def main():
|
|||||||
|
|
||||||
for filename in glob.glob(f'{args.input_dir.rstrip("/")}/*.json'):
|
for filename in glob.glob(f'{args.input_dir.rstrip("/")}/*.json'):
|
||||||
with open(filename, 'r') as file:
|
with open(filename, 'r') as file:
|
||||||
|
print(filename)
|
||||||
data_list.append(json.load(file))
|
data_list.append(json.load(file))
|
||||||
print(filename + " loaded.")
|
print(filename + " loaded.")
|
||||||
|
|
||||||
|
@ -1,2 +1 @@
|
|||||||
{"CPU": "ALTRA", "ITERATIONS": 100000, "MATRIX_FILE": "soc-sign-Slashdot090221", "MATRIX_SHAPE": [82144, 82144], "MATRIX_SIZE": 6747636736, "MATRIX_NNZ": 549202, "MATRIX_DENSITY": 8.13917555860553e-05, "TIME_S": 9.906620264053345, "BASELINE_TIME_S": 10, "BASELINE_DELAY_S": 10, "POWER_BEFORE": [21.48, 21.28, 21.6, 21.6, 21.88, 21.96, 21.96, 21.84, 21.4, 21.44], "POWER": [102.12, 100.8, 88.12, 72.96, 55.76, 56.68, 60.92, 60.92, 77.88, 98.52, 109.4, 109.76, 111.0, 109.04, 106.48, 104.8, 105.32, 102.52], "JOULES": 1025.1467094707486, "POWER_AFTER": [21.88, 21.84, 21.76, 21.24, 21.36, 21.4, 21.32, 21.48, 21.6, 21.48]}
|
{"CPU": "ALTRA", "ITERATIONS": 100000, "MATRIX_FILE": "soc-sign-Slashdot090221", "MATRIX_SHAPE": [82144, 82144], "MATRIX_SIZE": 6747636736, "MATRIX_NNZ": 549202, "MATRIX_DENSITY": 8.13917555860553e-05, "TIME_S": 9.906620264053345, "BASELINE_TIME_S": 10, "BASELINE_DELAY_S": 10, "POWER_BEFORE": [21.48, 21.28, 21.6, 21.6, 21.88, 21.96, 21.96, 21.84, 21.4, 21.44], "POWER": [102.12, 100.8, 88.12, 72.96, 55.76, 56.68, 60.92, 60.92, 77.88, 98.52, 109.4, 109.76, 111.0, 109.04, 106.48, 104.8, 105.32, 102.52], "JOULES": 1025.1467094707486, "POWER_AFTER": [21.88, 21.84, 21.76, 21.24, 21.36, 21.4, 21.32, 21.48, 21.6, 21.48]}
|
||||||
48, 21.4, 21.12, 20.92, 20.6]}
|
|
||||||
|
@ -65,6 +65,8 @@ program_result = run_program(program[args.cpu])
|
|||||||
result |= program_result[0]
|
result |= program_result[0]
|
||||||
print(program_result[1], file=sys.stderr)
|
print(program_result[1], file=sys.stderr)
|
||||||
|
|
||||||
|
result[Stat.TIME_S.name] = result[Stat.TIME_S_OVERALL.name] / result[Stat.ITERATIONS.name]
|
||||||
|
|
||||||
if args.power:
|
if args.power:
|
||||||
result[Stat.BASELINE_TIME_S.name] = args.baseline_time_s
|
result[Stat.BASELINE_TIME_S.name] = args.baseline_time_s
|
||||||
result[Stat.BASELINE_DELAY_S.name] = args.baseline_delay_s
|
result[Stat.BASELINE_DELAY_S.name] = args.baseline_delay_s
|
||||||
@ -91,15 +93,15 @@ if args.power:
|
|||||||
# Riemann Sum across the last (s) power recordings.
|
# Riemann Sum across the last (s) power recordings.
|
||||||
from math import ceil
|
from math import ceil
|
||||||
result[Stat.JOULES.name] = (
|
result[Stat.JOULES.name] = (
|
||||||
sum(result[Stat.POWER.name][-ceil(result[Stat.TIME_S.name]):-1])
|
sum(result[Stat.POWER.name][-ceil(result[Stat.TIME_S_OVERALL.name]):-1])
|
||||||
+ (result[Stat.POWER.name][-1] * (result[Stat.TIME_S.name] % 1)))
|
+ (result[Stat.POWER.name][-1] * (result[Stat.TIME_S_OVERALL.name] % 1)))
|
||||||
|
|
||||||
elif args.cpu == Cpu.EPYC_7313P:
|
elif args.cpu == Cpu.EPYC_7313P:
|
||||||
power_process = subprocess.Popen(
|
power_process = subprocess.Popen(
|
||||||
[python[args.cpu], 'power.py'] + program[args.cpu],
|
[python[args.cpu], 'power.py'] + program[args.cpu],
|
||||||
stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, text=True)
|
stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, text=True)
|
||||||
result[Stat.POWER.name] = [float(x) for x in power_process.communicate()[0].strip().split('\n')]
|
result[Stat.POWER.name] = [float(x) for x in power_process.communicate()[0].strip().split('\n')]
|
||||||
result[Stat.JOULES.name] = result[Stat.POWER.name][0] * result[Stat.TIME_S.name]
|
result[Stat.JOULES.name] = result[Stat.POWER.name][0] * result[Stat.TIME_S_OVERALL.name]
|
||||||
|
|
||||||
if args.debug:
|
if args.debug:
|
||||||
print(result)
|
print(result)
|
||||||
|
@ -50,7 +50,7 @@ print(f"NNZ: {result[Stat.MATRIX_NNZ.name]}", file=sys.stderr)
|
|||||||
result[Stat.MATRIX_DENSITY.name] = matrix.values().shape[0] / (matrix.shape[0] * matrix.shape[1])
|
result[Stat.MATRIX_DENSITY.name] = matrix.values().shape[0] / (matrix.shape[0] * matrix.shape[1])
|
||||||
print(f"Density: {result[Stat.MATRIX_DENSITY.name]}", file=sys.stderr)
|
print(f"Density: {result[Stat.MATRIX_DENSITY.name]}", file=sys.stderr)
|
||||||
|
|
||||||
result[Stat.TIME_S.name] = end - start
|
result[Stat.TIME_S_OVERALL.name] = end - start
|
||||||
print(f"Time: {result[Stat.TIME_S.name]} seconds", file=sys.stderr)
|
print(f"Time: {result[Stat.TIME_S_OVERALL.name]} seconds", file=sys.stderr)
|
||||||
|
|
||||||
print(json.dumps(result))
|
print(json.dumps(result))
|
||||||
|
Loading…
Reference in New Issue
Block a user