from concurrent.futures import ProcessPoolExecutor from bench import bench from mc import estimate_pi_serial from mc_parallel import estimate_pi_parallel N = 20_000_000 if __name__ == "__main__": t1, _, _ = bench(estimate_pi_serial, N) print(f"Последовательно: T(1) = {t1:.2f} с") print(" p T(p), с S(p) E(p)") for p in [1, 2, 4, 6, 8, 10]: with ProcessPoolExecutor(max_workers=p) as pool: tp, _, _ = bench(estimate_pi_parallel, N, pool, p) s = t1 / tp print(f"{p:2d} {tp:8.2f} {s:5.2f} {s / p:5.2f}")