From f20006b8aa392b86599fae5f1a2d33b8c30c9151 Mon Sep 17 00:00:00 2001 From: Marco Crapts Date: Sat, 31 Aug 2024 22:17:45 +0200 Subject: [PATCH] run in __main__ --- simulation/app.py | 69 ++++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/simulation/app.py b/simulation/app.py index 6533887..44f9fe4 100644 --- a/simulation/app.py +++ b/simulation/app.py @@ -86,41 +86,42 @@ def run_simulation(n_servers=2, lam=40): } -with ProcessPoolExecutor(max_workers=4) as executor: - n_servers = [n + 1 for n in range(10)] - lam = [(n + 1) * 4 for n in range(10)] - parameter_values = [ - {"n_servers": n, "lam": m} for n in n_servers for m in lam for _ in range(10) - ] - futures = [ - executor.submit(run_simulation, **parameters) for parameters in parameter_values - ] +if __name__=="__main__": + with ProcessPoolExecutor(max_workers=4) as executor: + n_servers = [n + 1 for n in range(10)] + lam = [(n + 1) * 4 for n in range(10)] + parameter_values = [ + {"n_servers": n, "lam": m} for n in n_servers for m in lam for _ in range(10) + ] + futures = [ + executor.submit(run_simulation, **parameters) for parameters in parameter_values + ] - results = [] - for future in tqdm(as_completed(futures), total=len(parameter_values)): - result = future.result() - results.append(result) + results = [] + for future in tqdm(as_completed(futures), total=len(parameter_values)): + result = future.result() + results.append(result) - df = ( - pl.DataFrame(results) - .fill_null(0) - .group_by(["n_servers", "lam"]) - .agg(pl.all().mean()) - .sort(["n_servers", "lam"]) - ) - - df_queue_time = df.pivot("lam", index="n_servers", values="queue_time").sort( - "n_servers" - ) - - def stats(column): - return ( - df.pivot("lam", index="n_servers", values=column) - .sort("n_servers") - .with_columns(pl.all().round(2)) + df = ( + pl.DataFrame(results) + .fill_null(0) + .group_by(["n_servers", "lam"]) + .agg(pl.all().mean()) + .sort(["n_servers", "lam"]) ) - pl.Config.set_tbl_cols(20) - print(df) - print(stats("queue_time")) - print(stats("utilization_server_1")) + df_queue_time = df.pivot("lam", index="n_servers", values="queue_time").sort( + "n_servers" + ) + + def stats(column): + return ( + df.pivot("lam", index="n_servers", values=column) + .sort("n_servers") + .with_columns(pl.all().round(2)) + ) + + pl.Config.set_tbl_cols(20) + print(df) + print(stats("queue_time")) + print(stats("utilization_server_1"))