from concurrent.futures import ProcessPoolExecutor from bench import bench from mc_parallel import estimate_pi_parallel N_PER_WORKER = 5_000_000 # объём работы на одного исполнителя if __name__ == "__main__": print(" p N T(p), с E_weak") for p in [1, 2, 4, 6, 8, 10]: n = N_PER_WORKER * p # задача растёт вместе с числом процессов with ProcessPoolExecutor(max_workers=p) as pool: tp, _, _ = bench(estimate_pi_parallel, n, pool, p) if p == 1: t_base = tp print(f"{p:2d} {n:10_d} {tp:7.2f} {t_base / tp:6.2f}")