mcframework.backends.ProcessBackend#
- class mcframework.backends.ProcessBackend[source]#
Bases:
objectProcess-based parallel execution backend.
Uses
concurrent.futures.ProcessPoolExecutorwith spawn context for parallel execution. Required on Windows or when thread-safety is a concern.- Parameters:
Notes
The simulation instance must be pickleable for process-based execution.
Examples
>>> backend = ProcessBackend(n_workers=4) >>> results = backend.run(sim, n_simulations=100000, seed_seq=seed_seq, progress_callback=None)
Methods
Run simulations in parallel using processes.
- run(sim: MonteCarloSimulation, n_simulations: int, seed_seq: np.random.SeedSequence | None, progress_callback: Callable[[int, int], None] | None, **simulation_kwargs: Any) np.ndarray[source]#
Run simulations in parallel using processes.
- Parameters:
- sim
MonteCarloSimulation The simulation instance to run. Must be pickleable.
- n_simulations
int Number of simulation draws to perform.
- seed_seq
SeedSequenceorNone Seed sequence for spawning independent RNG streams per chunk.
- progress_callback
callable()orNone Optional callback
f(completed, total)for progress reporting.- **simulation_kwargs
Any Additional keyword arguments passed to
single_simulation.
- sim
- Returns:
np.ndarrayArray of simulation results with shape
(n_simulations,).
- classmethod __new__(*args, **kwargs)#