From 6f2cb99a9cc3b4f18cd6961853154409e2dbd53a Mon Sep 17 00:00:00 2001 From: Marco Crapts Date: Fri, 13 Sep 2024 14:50:10 +0200 Subject: [PATCH] randomize execution --- README.md | 3 +++ simulation/app.py | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e69de29..7e53d62 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,3 @@ +Run the simulation using: + + uv run python -m simulation.app diff --git a/simulation/app.py b/simulation/app.py index 5c7fac6..f4b99ae 100644 --- a/simulation/app.py +++ b/simulation/app.py @@ -1,4 +1,5 @@ import os +import random from concurrent.futures import ProcessPoolExecutor, as_completed from dataclasses import dataclass @@ -87,7 +88,8 @@ def run_simulation(n_servers=2, lam=40): if __name__ == "__main__": - with ProcessPoolExecutor(max_workers=os.cpu_count()) as executor: + max_workers = (os.cpu_count() or 2) - 1 + with ProcessPoolExecutor(max_workers=max_workers) as executor: n_servers = [n + 1 for n in range(10)] lam = [(n + 1) * 4 for n in range(10)] parameter_values = [ @@ -98,7 +100,7 @@ if __name__ == "__main__": ] futures = [ executor.submit(run_simulation, **parameters) - for parameters in parameter_values + for parameters in random.sample(parameter_values, len(parameter_values)) ] results = []