in scheme_adapters/pso_adapter/pso_adapter.py [0:0]
def collect_data(self):
subprocess.call(["sudo", "bash", self.lazybox_path + "/scripts/zram_swap.sh", "4G"])
index_dict = dict()
for key, value in self.search_param.items():
index_dict[key] = [0, len(value)]
store_metrics = []
action = self.search_param["action"][0]
for min_size in self.search_param["min_size"]:
for max_size in self.search_param["max_size"]:
for min_freq in self.search_param["min_freq"]:
for max_freq in self.search_param["max_freq"]:
for min_age in self.search_param["min_age"]:
for max_age in self.search_param["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/pso_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)
self.workload_info.append(store_metrics)