|
1 |
| -from exareme2 import ALGORITHM_FOLDERS |
2 | 1 | from exareme2.algorithms.flower.process_manager import FlowerProcess
|
3 | 2 | from exareme2.worker import config as worker_config
|
4 | 3 | from exareme2.worker.utils.logger import get_logger
|
5 | 4 | from exareme2.worker.utils.logger import initialise_logger
|
6 | 5 |
|
7 |
| -# Dictionary to keep track of running processes |
8 |
| -running_processes = {} |
9 |
| -SERVER_ADDRESS = "0.0.0.0:8080" |
10 |
| - |
11 | 6 |
|
12 | 7 | @initialise_logger
|
13 |
| -def start_flower_client(request_id: str, algorithm_name, worker_id) -> int: |
| 8 | +def start_flower_client(request_id: str, algorithm_name, server_address) -> int: |
14 | 9 | env_vars = {
|
15 | 10 | "MONETDB_IP": worker_config.monetdb.ip,
|
16 | 11 | "MONETDB_PORT": worker_config.monetdb.port,
|
17 | 12 | "MONETDB_USERNAME": worker_config.monetdb.local_username,
|
18 | 13 | "MONETDB_PASSWORD": worker_config.monetdb.local_password,
|
19 | 14 | "MONETDB_DB": worker_config.monetdb.database,
|
20 |
| - "SERVER_ADDRESS": SERVER_ADDRESS, |
| 15 | + "SERVER_ADDRESS": server_address, |
21 | 16 | "NUMBER_OF_CLIENTS": worker_config.monetdb.database,
|
| 17 | + "CONTROLLER_IP": worker_config.controller.ip, |
| 18 | + "CONTROLLER_PORT": worker_config.controller.port, |
| 19 | + "DATA_PATH": worker_config.data_path, |
22 | 20 | }
|
23 |
| - with open(f"/tmp/exareme2/{worker_id}.out", "a") as f: |
24 |
| - process = FlowerProcess( |
25 |
| - f"{algorithm_name}/client.py", env_vars=env_vars, stderr=f, stdout=f |
26 |
| - ) |
27 |
| - running_processes[request_id] = process |
28 |
| - logger = get_logger() |
| 21 | + process = FlowerProcess(f"{algorithm_name}/client.py", env_vars=env_vars) |
| 22 | + logger = get_logger() |
29 | 23 |
|
30 |
| - logger.info("Starting client.py") |
31 |
| - pid = process.start(logger) |
| 24 | + logger.info("Starting client.py") |
| 25 | + pid = process.start(logger) |
32 | 26 | logger.info(f"Started client.py process id: {pid}")
|
33 | 27 | return pid
|
34 | 28 |
|
35 | 29 |
|
36 | 30 | @initialise_logger
|
37 | 31 | def start_flower_server(
|
38 |
| - request_id: str, algorithm_name: str, number_of_clients: int, worker_id |
| 32 | + request_id: str, algorithm_name: str, number_of_clients: int, server_address |
39 | 33 | ) -> int:
|
40 | 34 | env_vars = {
|
41 |
| - "SERVER_ADDRESS": SERVER_ADDRESS, |
| 35 | + "SERVER_ADDRESS": server_address, |
42 | 36 | "NUMBER_OF_CLIENTS": number_of_clients,
|
| 37 | + "CONTROLLER_IP": worker_config.controller.ip, |
| 38 | + "CONTROLLER_PORT": worker_config.controller.port, |
| 39 | + "DATA_PATH": worker_config.data_path, |
43 | 40 | }
|
44 |
| - with open(f"/tmp/exareme2/{worker_id}.out", "a") as f: |
45 |
| - process = FlowerProcess( |
46 |
| - f"{algorithm_name}/server.py", env_vars=env_vars, stderr=f, stdout=f |
47 |
| - ) |
48 |
| - running_processes[request_id] = process |
49 |
| - logger = get_logger() |
50 |
| - logger.info("Starting server.py") |
51 |
| - pid = process.start(logger) |
| 41 | + process = FlowerProcess(f"{algorithm_name}/server.py", env_vars=env_vars) |
| 42 | + logger = get_logger() |
| 43 | + logger.info("Starting server.py") |
| 44 | + pid = process.start(logger) |
52 | 45 | logger.info(f"Started server.py process id: {pid}")
|
53 | 46 | return pid
|
0 commit comments