Skip to content

Commit 874abf2

Browse files
committed
chore: use kepler_vm metrics as energy source
Signed-off-by: Huamin Chen <[email protected]>
1 parent 42a77cb commit 874abf2

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

src/kepler_model/cmd/cmd_util.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from kepler_model.util.prom_types import (
88
SOURCE_COL,
99
energy_component_to_query,
10+
vm_energy_component_to_query,
1011
node_info_column,
1112
prom_responses_to_results,
1213
)
@@ -99,7 +100,7 @@ def summary_validation(validate_df):
99100
print("{} data: \t{}".format(metric, target_df[">0"].values))
100101

101102

102-
def get_validate_df(data_path, benchmark_filename, query_response):
103+
def get_validate_df(data_path, benchmark_filename, query_response, use_vm_metrics=False):
103104
items = []
104105
query_results = prom_responses_to_results(query_response)
105106
container_queries = [query for query in query_results.keys() if "container" in query]
@@ -175,10 +176,14 @@ def get_validate_df(data_path, benchmark_filename, query_response):
175176
item["total"] = filtered_df[query].max()
176177
items += [item]
177178
energy_queries = [query for query in query_results.keys() if "_joules" in query]
178-
print("Energy Queries: ", container_queries)
179+
print("Energy Queries: ", energy_queries)
179180
for energy_source, energy_components in PowerSourceMap.items():
180181
for component in energy_components:
181182
query = energy_component_to_query(component)
183+
if use_vm_metrics:
184+
query = vm_energy_component_to_query(component)
185+
else:
186+
query = energy_component_to_query(component)
182187
df = query_results[query]
183188
df = df[df[SOURCE_COL] == energy_source]
184189
if len(df) == 0:

src/kepler_model/cmd/main.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ def query(args):
156156
if args.to_csv:
157157
save_query_results(data_path, args.output, response)
158158
# try validation if applicable
159-
validate_df = get_validate_df(data_path, benchmark_filename, response)
159+
validate_df = get_validate_df(data_path, benchmark_filename, response, use_vm_metrics=args.vm_train)
160160
summary_validation(validate_df)
161161
save_csv(path=data_path, name=args.output + "_validate_result", data=validate_df)
162162

@@ -487,7 +487,9 @@ def train(args):
487487
print("cannot get pipeline")
488488
exit()
489489
for energy_source in energy_sources:
490+
print("energy source: ", energy_source)
490491
energy_components = PowerSourceMap[energy_source]
492+
print("energy components: ", energy_components)
491493
for feature_group in valid_feature_groups:
492494
success, abs_data, dyn_data = pipeline.process_multiple_query(
493495
input_query_results_list, energy_components, energy_source, feature_group=feature_group.name, replace_node_type=node_type

src/kepler_model/train/extractor/extractor.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ def get_workload_feature_data(self, query_results, features, use_vm_metrics=Fals
168168
print("no data in ", query)
169169
return None
170170
aggr_query_data = query_results[query].copy()
171-
172171
if all(col in aggr_query_data.columns for col in cols_to_use):
173172
if use_vm_metrics:
174173
aggr_query_data = aggr_query_data.loc[aggr_query_data["job"] == VM_JOB_NAME]
@@ -256,9 +255,9 @@ def get_power_data(self, query_results, energy_components, source, use_vm_metric
256255
return None
257256
aggr_query_data = query_results[query].copy()
258257
if not use_vm_metrics:
259-
aggr_query_data = aggr_query_data.loc[aggr_query_data["job"] != VM_JOB_NAME]
260-
# filter source
261-
aggr_query_data = aggr_query_data[aggr_query_data[SOURCE_COL] == source]
258+
# aggr_query_data = aggr_query_data.loc[aggr_query_data["job"] != VM_JOB_NAME]
259+
# filter source
260+
aggr_query_data = aggr_query_data[aggr_query_data[SOURCE_COL] == source]
262261
if len(aggr_query_data) == 0:
263262
return None
264263
if unit_col is not None:

0 commit comments

Comments
 (0)