in scheme_adapters/polyfit_adapter/polyfit_adapter.py [0:0]
def collect_data(self, search_space):
subprocess.call(["sudo", "bash", self.lazybox_path + "/scripts/zram_swap.sh", "4G"])
store_metrics = []
action = search_space["action"][0]
for min_size in search_space["min_size"]:
for max_size in search_space["max_size"]:
for min_freq in search_space["min_freq"]:
for max_freq in search_space["max_freq"]:
for min_age in search_space["min_age"]:
for max_age in search_space["max_age"]:
scheme_list = [min_size, max_size, min_freq, max_freq, min_age, max_age]
if self.cache_read_enabled:
stored_value = self.cache_instance.get(scheme_list + [action])
if stored_value != -1:
store_metrics.append((stored_value[1], scheme_list))
continue
if type(min_size) == int:
min_size = str(min_size) + "B"
if type(max_age) == int:
max_age = str(max_age) + "us"
if type(max_size) == int:
max_size = str(max_size) + "B"
if type(min_age) == int:
min_age = str(min_age) + "us"
scheme = min_size + "\t" + max_size + "\t"
scheme += str(min_freq) + "\t" + str(max_freq) + "\t"
scheme += min_age + "\t" + max_age + "\t" + action
file_name = self.damoos_path + "/scheme_adapters/polyfit_adapter/scheme"
scheme_file = open(file_name, "w")
scheme_file.write(scheme)
scheme_file.close()
pid = self.run_workload()
subprocess.Popen(
["sudo", "python3", self.damos_path, "schemes", "--schemes", file_name, str(pid)])
collected_metric = self.get_metric(pid, self.metrics)
store_metrics.append((collected_metric, scheme_list))
if self.cache_write_enabled:
self.cache_instance.store(scheme_list + [action], collected_metric)
return store_metrics