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

Make it possible to select solvers

parent fdafebe1
Loading
Loading
Loading
Loading
+1 −1
Changes for adc2019system.py: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -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)
+10 −3
Changes for roles/host.py: 10 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -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,6 +324,9 @@ class Request(object):
        self.request_id = time.time()
        self.broadcast_time = None

        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: