Commit 07b70bb9 authored by Kento HASEGAWA's avatar Kento HASEGAWA

Make it possible to select solvers

parent fdafebe1
...@@ -33,7 +33,7 @@ def set_role(role_name, config_data): ...@@ -33,7 +33,7 @@ def set_role(role_name, config_data):
role = Host(config_data) role = Host(config_data)
elif role_name == 'solver': elif role_name == 'solver':
if not 'partial_mode' in config_data: if not 'partial_mode' in config_data:
config['partial_mode'] = False config_data['partial_mode'] = False
role = Solver(config_data) role = Solver(config_data)
elif role_name == 'merge_solver': elif role_name == 'merge_solver':
role = MergeSolver(config_data) role = MergeSolver(config_data)
......
...@@ -271,6 +271,8 @@ class WorkerManager(object): ...@@ -271,6 +271,8 @@ class WorkerManager(object):
_worker.post(_cmd, _params) _worker.post(_cmd, _params)
for k, v in self.workers.items(): 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 = threading.Thread(name=v.address, target=_sender, args=(v, cmd, params), daemon=True)
_th.start() _th.start()
threads.append(_th) threads.append(_th)
...@@ -322,7 +324,10 @@ class Request(object): ...@@ -322,7 +324,10 @@ class Request(object):
self.request_id = time.time() self.request_id = time.time()
self.broadcast_time = None 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() self.response = dict()
...@@ -344,10 +349,11 @@ class Request(object): ...@@ -344,10 +349,11 @@ class Request(object):
self.response[worker] = data self.response[worker] = data
def get_status(self): def get_status(self):
all_workers = self.worker_manager.get_workers().keys() # all_workers = self.worker_manager.get_workers().keys()
worker_count = 0 worker_count = 0
response_count = 0 response_count = 0
for v in all_workers: # for v in all_workers:
for v in self.solvers:
worker_count += 1 worker_count += 1
if v in self.response: if v in self.response:
response_count += 1 response_count += 1
...@@ -372,7 +378,8 @@ class Request(object): ...@@ -372,7 +378,8 @@ class Request(object):
progress = min(100, max(progress_problem, progress_time)) progress = min(100, max(progress_problem, progress_time))
worker_status = dict() worker_status = dict()
for v in all_workers: # for v in all_workers:
for v in self.solvers:
if v in self.response: if v in self.response:
worker_status[v] = self.response[v]['status'] worker_status[v] = self.response[v]['status']
else: else:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment