MCPcopy Create free account
hub / github.com/eth-easl/dirigent / plot_experiment

Function plot_experiment

scripts/plotting/plot_utilization.py:34–111  ·  view source on GitHub ↗
(experiment_name, input_folder, column)

Source from the content-addressed store, hash-verified

32
33
34def plot_experiment(experiment_name, input_folder, column):
35 nodes = glob.glob(input_folder + "/cpu_mem_usage/*.csv")
36 master_nodes = []
37
38 for n in nodes:
39 # Master node
40 if experiment_name == "Knative-on-K8s" and ("hp156" in n or "hp091" in n or "hp155" in n): # 023
41 master_nodes.append(n)
42 nodes.remove(n)
43
44 # Loader node
45 if experiment_name == "Knative-on-K8s" and "hp004" in n: # 075
46 nodes.remove(n)
47
48 # Master node(s)
49 if experiment_name == "Dirigent" and ("hp023" in n): # or "hp091" in n or "hp081" in n):
50 master_nodes.append(n)
51 nodes.remove(n)
52
53 # Data plane(s)
54 if experiment_name == "Dirigent" and ("hp091" in n): # or "hp077" in n or "hp134" in n):
55 nodes.remove(n)
56
57 # Loader node
58 if experiment_name == "Dirigent" and ("hp080" in n):
59 nodes.remove(n)
60
61 experiment_df = pd.read_csv(input_folder + "/experiment_duration_30.csv")
62 start = experiment_df['startTime'][0] / 1e6
63 end = experiment_df['startTime'].iloc[-1] / 1e6
64
65 id = 0
66 master_node_df = pd.DataFrame()
67 for n in master_nodes:
68 df = pd.read_csv(n)
69 df = df[df['Timestamp'] > start]
70 df = df[df['Timestamp'] < end]
71 df = df.reset_index(drop=True)
72
73 df['time'] = df['Timestamp'] - df['Timestamp'][0]
74 df['minute'] = df['time'] / 60
75 df = df[df['minute'] >= 10]
76
77 df['minute'] = (df['minute']).round(0).astype('int')
78 df = df.groupby(df.minute, as_index=False).mean()
79
80 df['id'] = id
81 if id == 0:
82 master_node_df = df
83 id += 1
84 master_node_df = pd.concat([master_node_df, df], ignore_index=True)
85
86 # need to use space before column to access it...
87 master_node_df = master_node_df.groupby(master_node_df.minute, as_index=False).mean()
88 ax1.step(master_node_df['minute'], master_node_df[column], label=experiment_name, where='post')
89
90 id = 0
91 worker_df = pd.DataFrame()

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected