From 07b70bb9caba39da8332d0ae8b66737271f240d4 Mon Sep 17 00:00:00 2001 From: Kento HASEGAWA Date: Fri, 23 Aug 2019 15:11:07 +0900 Subject: [PATCH] Make it possible to select solvers --- adc2019system.py | 2 +- roles/host.py | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/adc2019system.py b/adc2019system.py index 7ee3132..fad529c 100644 --- a/adc2019system.py +++ b/adc2019system.py @@ -33,7 +33,7 @@ def set_role(role_name, config_data): role = Host(config_data) elif role_name == 'solver': if not 'partial_mode' in config_data: - config['partial_mode'] = False + config_data['partial_mode'] = False role = Solver(config_data) elif role_name == 'merge_solver': role = MergeSolver(config_data) diff --git a/roles/host.py b/roles/host.py index 8af0001..1053533 100644 --- a/roles/host.py +++ b/roles/host.py @@ -271,6 +271,8 @@ class WorkerManager(object): _worker.post(_cmd, _params) for k, v in self.workers.items(): + if (not solvers is None) and (not k in solvers): + continue _th = threading.Thread(name=v.address, target=_sender, args=(v, cmd, params), daemon=True) _th.start() threads.append(_th) @@ -322,7 +324,10 @@ class Request(object): self.request_id = time.time() self.broadcast_time = None - self.solvers = solvers + if solvers is None: + self.solvers = list(self.worker_manager.get_workers().keys()) + else: + self.solvers = solvers self.response = dict() @@ -344,10 +349,11 @@ class Request(object): self.response[worker] = data def get_status(self): - all_workers = self.worker_manager.get_workers().keys() + # all_workers = self.worker_manager.get_workers().keys() worker_count = 0 response_count = 0 - for v in all_workers: + # for v in all_workers: + for v in self.solvers: worker_count += 1 if v in self.response: response_count += 1 @@ -372,7 +378,8 @@ class Request(object): progress = min(100, max(progress_problem, progress_time)) worker_status = dict() - for v in all_workers: + # for v in all_workers: + for v in self.solvers: if v in self.response: worker_status[v] = self.response[v]['status'] else: -- 2.22.0